
/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention */

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

{
  int iVar1;
  _Bool _Var2;
  bool bVar3;
  dfa *pdVar4;
  token tVar5;
  dfa *d_00;
  size_t sVar6;
  charclass *__dest;
  token *ptVar7;
  ptrdiff_t pVar8;
  uint uVar9;
  state_num **ppsVar10;
  char *pcVar11;
  int iVar12;
  size_t sVar13;
  uint uVar14;
  char cVar15;
  char cVar16;
  dfa *pdVar17;
  uint uVar18;
  int in_GS_OFFSET;
  byte bVar19;
  uint local_68;
  token *local_60;
  byte local_5a;
  charclass ccl;
  
  bVar19 = 0;
  iVar1 = *(int *)(in_GS_OFFSET + 0x14);
  (d->lex).laststart = true;
  (d->lex).lasttok = -1;
  (d->lex).ptr = s;
  (d->lex).left = len;
  _Var2 = (d->syntax).syntax_bits_set;
  pdVar4 = (dfa *)(uint)_Var2;
  if (_Var2 == false) {
    pcVar11 = "no syntax specified";
LAB_00026c24:
    pcVar11 = (char *)dcgettext(0,pcVar11,5,pdVar4);
                    /* WARNING: Subroutine does not return */
    dfaerror(pcVar11);
  }
  if (d->nregexps == 0) {
    addtok(d,0x10b);
  }
  tVar5 = lex(d);
  (d->parse).tok = tVar5;
  (d->parse).depth = d->depth;
  closure(d);
  iVar12 = (d->parse).tok;
  while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {
    closure(d);
    addtok(d,0x105);
    iVar12 = (d->parse).tok;
  }
  while (iVar12 == 0x106) {
    tVar5 = lex(d);
    (d->parse).tok = tVar5;
    closure(d);
    iVar12 = (d->parse).tok;
    while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {
      closure(d);
      addtok(d,0x105);
      iVar12 = (d->parse).tok;
    }
    addtok(d,0x106);
    iVar12 = (d->parse).tok;
  }
  if (iVar12 != -1) {
    pcVar11 = "unbalanced )";
    pdVar4 = d;
    goto LAB_00026c24;
  }
  addtok(d,~d->nregexps);
  addtok(d,0x105);
  sVar6 = d->nregexps;
  if (sVar6 != 0) {
    addtok(d,0x106);
    sVar6 = d->nregexps;
  }
  d->nregexps = sVar6 + 1;
  d_00 = (dfa *)xmalloc(0x834);
  pdVar4 = d;
  pdVar17 = d_00;
  for (iVar12 = 0x20d; iVar12 != 0; iVar12 = iVar12 + -1) {
    (pdVar17->syntax).syntax_bits = (pdVar4->syntax).syntax_bits;
    pdVar4 = (dfa *)((int)pdVar4 + (uint)bVar19 * -8 + 4);
    pdVar17 = (dfa *)((int)pdVar17 + (uint)bVar19 * -8 + 4);
  }
  (d_00->localeinfo).multibyte = false;
  d_00->multibyte_prop = (char *)0x0;
  d_00->superset = (dfa *)0x0;
  d_00->dfaexec = dfaexec_sb;
  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;
  sVar6 = d_00->calloc << 5;
  d_00->trans = (state_num **)0x0;
  d_00->fails = (state_num **)0x0;
  d_00->success = (char *)0x0;
  d_00->newlines = (state_num *)0x0;
  if (((int)sVar6 < 0) || ((uint)d_00->calloc >> 0x1b != 0)) {
LAB_00026c0e:
                    /* WARNING: Subroutine does not return */
    xalloc_die();
  }
  __dest = (charclass *)xmalloc(sVar6);
  iVar12 = d->cindex;
  d_00->charclasses = __dest;
  if (iVar12 != 0) {
    memcpy(__dest,d->charclasses,iVar12 << 5);
  }
  sVar6 = d->tindex << 3;
  if (((int)sVar6 < 0) || (d->tindex >> 0x1d != 0)) goto LAB_00026c0e;
  ptVar7 = (token *)xmalloc(sVar6);
  d_00->tokens = ptVar7;
  sVar6 = d->tindex;
  d_00->talloc = sVar6 * 2;
  if (sVar6 == 0) {
    d_00->tindex = 0;
LAB_00026a5d:
    dfafree(d_00);
    free(d_00);
    uVar9 = d->tindex;
  }
  else {
    local_60 = d->tokens;
    local_5a = 0;
    local_68 = 0;
    bVar3 = false;
    sVar6 = 0;
    do {
      uVar9 = local_68 + 1;
      sVar13 = sVar6 + 1;
      uVar14 = local_60[local_68];
      if (uVar14 - 0x10a < 10) {
        uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);
        if ((uVar18 & 0x301) == 0) {
          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {
            d_00->tokens[sVar6] = uVar14;
            local_68 = uVar9;
          }
          else {
            d_00->tokens[sVar6] = 0x100;
            local_68 = uVar9;
          }
        }
        else {
          ccl.w[0] = 0xffffffff;
          ccl.w[1] = 0xffffffff;
          ccl.w[2] = 0xffffffff;
          ccl.w[3] = 0xffffffff;
          ccl.w[4] = 0xffffffff;
          ccl.w[5] = 0xffffffff;
          ccl.w[6] = 0xffffffff;
          ccl.w[7] = 0xffffffff;
          pVar8 = charclass_index(d_00,&ccl);
          ptVar7 = d_00->tokens;
          sVar13 = sVar6 + 2;
          ptVar7[sVar6] = pVar8 + 0x114;
          ptVar7[sVar6 + 1] = 0x102;
          local_60 = d->tokens;
          iVar12 = local_68 + 1;
          local_68 = local_68 + 2;
          local_5a = _Var2;
          if (2 < local_60[iVar12] - 0x101U) {
            local_68 = uVar9;
          }
        }
      }
      else {
        d_00->tokens[sVar6] = uVar14;
        local_68 = uVar9;
        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {
          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;
        }
      }
      uVar9 = d->tindex;
      sVar6 = sVar13;
    } while (local_68 < uVar9);
    d_00->tindex = sVar13;
    if ((!bVar3) || ((local_5a == 0 && ((d->localeinfo).multibyte == false)))) goto LAB_00026a5d;
    d->superset = d_00;
  }
  if (uVar9 == 0) {
    if ((d->localeinfo).using_utf8 == false) goto LAB_00026a37;
LAB_00026bd5:
    if (d->superset != (dfa *)0x0) {
      dfafree(d->superset);
      free(d->superset);
      d->superset = (dfa *)0x0;
    }
  }
  else {
    uVar14 = 0;
    do {
      iVar12 = d->tokens[uVar14];
      if (0x10d < iVar12) {
        if (iVar12 < 0x112) {
          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;
        }
        else if (iVar12 < 0x114) {
LAB_000269ad:
          d->dfaexec = dfaexec_noop;
          goto LAB_000269bd;
        }
      }
      uVar14 = uVar14 + 1;
    } while (uVar14 != uVar9);
    _Var2 = (d->localeinfo).using_utf8;
    if (_Var2 == false) goto LAB_00026a37;
    uVar14 = 0;
    cVar15 = '\0';
    do {
      iVar12 = d->tokens[uVar14];
      cVar16 = _Var2;
      if (iVar12 != 0x112) {
        if (iVar12 == 0x113) goto LAB_00026a37;
        cVar16 = cVar15;
        if (iVar12 == 0x10a) {
                    /* WARNING: Subroutine does not return */
          abort();
        }
      }
      uVar14 = uVar14 + 1;
      cVar15 = cVar16;
    } while (uVar14 != uVar9);
    if (cVar16 == '\0') goto LAB_00026bd5;
  }
  free(d->multibyte_prop);
  free((d->lex).brack.chars);
  free((d->mb_follows).elems);
  ppsVar10 = d->mb_trans;
  if (ppsVar10 != (state_num **)0x0) {
    if (-1 < d->tralloc) {
      iVar12 = -1;
      do {
        ppsVar10 = ppsVar10 + iVar12;
        iVar12 = iVar12 + 1;
        free(*ppsVar10);
        ppsVar10 = d->mb_trans;
      } while (iVar12 < d->tralloc);
    }
    free(ppsVar10 + -2);
  }
  (d->localeinfo).multibyte = false;
  d->fast = true;
  d->dfaexec = dfaexec_sb;
LAB_00026a37:
  dfaanalyze(d,searchflag);
LAB_000269bd:
  if (d->superset != (dfa *)0x0) {
    d->fast = true;
    dfaanalyze(d->superset,searchflag);
  }
  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  __stack_chk_fail_local();
}



/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void FUN_000264c0(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)

{
  int iVar1;
  uint uVar2;
  undefined4 uVar3;
  void *__dest;
  int iVar4;
  uint uVar5;
  char *pcVar6;
  int iVar7;
  int iVar8;
  uint uVar9;
  undefined1 *puVar10;
  undefined1 *puVar11;
  undefined4 *puVar12;
  int iVar13;
  char cVar14;
  char cVar15;
  undefined4 *puVar16;
  uint uVar17;
  int in_GS_OFFSET;
  byte bVar18;
  undefined4 uStackY_90;
  undefined4 uStack_80;
  undefined1 auStack_7c [8];
  undefined4 *local_74;
  undefined **local_70 [2];
  uint local_68;
  int local_64;
  int local_60;
  char local_5b;
  char local_5a;
  char local_59;
  undefined4 *local_58;
  undefined4 local_54;
  undefined **local_50;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  
  bVar18 = 0;
  local_70[0] = &__DT_PLTGOT;
  puVar11 = auStack_7c;
  local_54 = param_4;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  *(undefined1 *)(param_3 + 0xa3) = 1;
  param_3[0x98] = (undefined *)0xffffffff;
  param_3[0x96] = (undefined *)param_1;
  param_3[0x97] = (undefined *)param_2;
  local_59 = *(char *)(param_3 + 1);
  if (local_59 == '\0') {
    puVar10 = &stack0xffffff7c;
    pcVar6 = "no syntax specified";
    goto LAB_00026c24;
  }
  if (param_3[0xab] == (undefined *)0x0) {
    FUN_000221a0();
  }
  uVar3 = FUN_00024d90();
  param_3[0xa4] = (undefined *)uVar3;
  param_3[0xa5] = param_3[0xa9];
  FUN_00025a60();
  local_64 = (int)param_3[0xa4];
  if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {
    do {
      FUN_00025a60();
      FUN_000221a0();
      iVar7 = (int)param_3[0xa4];
      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;
    } while (-1 < iVar7);
    local_64 = iVar7;
  }
  if (local_64 == 0x106) {
    do {
      uVar3 = FUN_00024d90();
      param_3[0xa4] = (undefined *)uVar3;
      FUN_00025a60();
      iVar7 = (int)param_3[0xa4];
      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {
        FUN_00025a60();
        FUN_000221a0();
        iVar7 = (int)param_3[0xa4];
      }
      FUN_000221a0();
    } while (param_3[0xa4] == (undefined *)0x106);
    local_64 = (int)param_3[0xa4];
  }
  if (local_64 != -1) {
    do {
      *(undefined ***)(puVar11 + -4) = param_3;
      puVar10 = puVar11 + -8;
      *(undefined4 *)(puVar11 + -8) = 5;
      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);
LAB_00026c24:
      *(char **)(puVar10 + -4) = pcVar6;
      puVar11 = puVar10 + -8;
      *(undefined4 *)(puVar10 + -8) = 0;
      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;
      uVar3 = dcgettext();
      *(undefined4 *)(puVar10 + -8) = uVar3;
      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;
      FUN_000143e0();
    } while( true );
  }
  FUN_000221a0();
  FUN_000221a0();
  iVar7 = (int)param_3[0xab];
  if (iVar7 != 0) {
    FUN_000221a0();
    iVar7 = (int)param_3[0xab];
  }
  param_3[0xab] = (undefined *)(iVar7 + 1);
  local_74 = (undefined4 *)FUN_0002efa0(0x834);
  puVar12 = param_3;
  puVar16 = local_74;
  for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {
    *puVar16 = *puVar12;
    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;
    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
  }
  *(undefined1 *)(local_74 + 0xcc) = 0;
  local_74[0xb4] = 0;
  local_74[0xb5] = 0;
  local_50 = local_70[0] + -0x98c7;
  local_74[0xca] = local_50;
  local_74[0xb6] = 0;
  local_74[0xb7] = 0;
  local_74[0xbb] = 0;
  local_74[0xbc] = 0;
  local_74[0xb9] = 0;
  local_74[0xbd] = 0;
  iVar7 = local_74[0x94] << 5;
  local_74[0xc0] = 0;
  local_74[0xc1] = 0;
  local_74[0xc2] = 0;
  local_74[0xc3] = 0;
  if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {
LAB_00026c0e:
                    /* WARNING: Subroutine does not return */
    FUN_0002f1c0();
  }
  __dest = (void *)FUN_0002efa0(iVar7);
  iVar7 = (int)param_3[0x93];
  local_74[0x92] = __dest;
  if (iVar7 != 0) {
    memcpy(__dest,param_3[0x92],iVar7 << 5);
  }
  iVar7 = (int)param_3[0xa7] << 3;
  if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;
  uVar3 = FUN_0002efa0(iVar7);
  local_74[0xa6] = uVar3;
  iVar7 = (int)param_3[0xa7];
  local_74[0xa8] = iVar7 * 2;
  if (iVar7 == 0) {
    local_74[0xa7] = 0;
LAB_00026a5d:
    puVar12 = local_74;
    FUN_00026290(local_74);
    free(puVar12);
    uVar5 = (uint)param_3[0xa7];
  }
  else {
    local_60 = (int)param_3[0xa6];
    local_5a = '\0';
    local_70[1] = param_3;
    local_58 = &local_40;
    local_5b = '\0';
    iVar7 = 0;
    uVar9 = 0;
    do {
      puVar12 = local_74;
      local_68 = uVar9 + 1;
      iVar13 = iVar7 * 4;
      iVar8 = iVar7 + 1;
      uVar5 = *(uint *)(local_60 + uVar9 * 4);
      uVar2 = local_68;
      if (uVar5 - 0x10a < 10) {
        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);
        if ((uVar17 & 0x301) == 0) {
          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {
            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;
          }
          else {
            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;
          }
        }
        else {
          local_40 = 0xffffffff;
          local_3c = 0xffffffff;
          local_38 = 0xffffffff;
          local_34 = 0xffffffff;
          local_30 = 0xffffffff;
          local_2c = 0xffffffff;
          local_28 = 0xffffffff;
          local_24 = 0xffffffff;
          iVar4 = FUN_00020370();
          iVar1 = puVar12[0xa6];
          iVar8 = iVar7 + 2;
          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;
          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;
          local_60 = (int)local_70[1][0xa6];
          local_5a = local_59;
          uVar2 = uVar9 + 2;
          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {
            uVar2 = local_68;
          }
        }
      }
      else {
        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;
        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {
          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;
        }
      }
      local_68 = uVar2;
      uVar5 = (uint)local_70[1][0xa7];
      iVar7 = iVar8;
      uVar9 = local_68;
    } while (local_68 < uVar5);
    local_74[0xa7] = iVar8;
    param_3 = local_70[1];
    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))
    goto LAB_00026a5d;
    local_70[1][0xb5] = (undefined *)local_74;
  }
  if (uVar5 == 0) {
    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;
LAB_00026bd5:
    if (param_3[0xb5] != (undefined *)0x0) {
      FUN_00026290(param_3[0xb5]);
      free(param_3[0xb5]);
      param_3[0xb5] = (undefined *)0x0;
    }
  }
  else {
    uVar9 = 0;
    do {
      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);
      if (0x10d < iVar7) {
        if (iVar7 < 0x112) {
          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;
        }
        else if (iVar7 < 0x114) {
LAB_000269ad:
          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);
          goto LAB_000269bd;
        }
      }
      uVar9 = uVar9 + 1;
    } while (uVar9 != uVar5);
    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;
    uVar9 = 0;
    cVar14 = '\0';
    do {
      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);
      cVar15 = *(char *)((int)param_3 + 0x331);
      if (iVar7 != 0x112) {
        if (iVar7 == 0x113) goto LAB_00026a37;
        cVar15 = cVar14;
        if (iVar7 == 0x10a) {
                    /* WARNING: Subroutine does not return */
          abort();
        }
      }
      uVar9 = uVar9 + 1;
      cVar14 = cVar15;
    } while (uVar9 != uVar5);
    if (cVar15 == '\0') goto LAB_00026bd5;
  }
  free(param_3[0xb4]);
  free(param_3[0xa0]);
  free(param_3[0xc5]);
  iVar7 = (int)param_3[200];
  if (iVar7 != 0) {
    iVar8 = local_64;
    if (-1 < (int)param_3[0xbd]) {
      do {
        iVar13 = iVar8 + 1;
        free(*(void **)(iVar7 + iVar8 * 4));
        iVar7 = (int)param_3[200];
        iVar8 = iVar13;
      } while (iVar13 < (int)param_3[0xbd]);
    }
    free((void *)(iVar7 + -8));
  }
  *(undefined1 *)(param_3 + 0xcc) = 0;
  *(undefined1 *)(param_3 + 0xac) = 1;
  param_3[0xca] = (undefined *)local_50;
LAB_00026a37:
  FUN_00022280();
LAB_000269bd:
  if (param_3[0xb5] != (undefined *)0x0) {
    *(undefined1 *)(param_3 + 0xac) = 1;
    FUN_00022280();
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00038830();
}


CALL 0x00018c30
ADD EAX,0x21927
PUSH EBP
PUSH EDI
PUSH ESI
PUSH EBX
SUB ESP,0x6c
MOV dword ptr [ESP + 0xc],EAX
MOV EAX,dword ptr [ESP + 0x8c]
MOV EBP,dword ptr [ESP + 0x88]
MOV dword ptr [ESP + 0x28],EAX
MOV EAX,GS:[0x14]
MOV dword ptr [ESP + 0x5c],EAX
XOR EAX,EAX
MOV EAX,dword ptr [ESP + 0x80]
MOV byte ptr [EBP + 0x28c],0x1
MOV dword ptr [EBP + 0x260],0xffffffff
MOV dword ptr [EBP + 0x258],EAX
MOV EAX,dword ptr [ESP + 0x84]
MOV dword ptr [EBP + 0x25c],EAX
MOVZX EAX,byte ptr [EBP + 0x4]
MOV byte ptr [ESP + 0x23],AL
TEST AL,AL
JZ 0x00026c17
MOV EAX,dword ptr [EBP + 0x2ac]
TEST EAX,EAX
JZ 0x00026b48
MOV EAX,EBP
CALL 0x00024d90
MOV dword ptr [EBP + 0x290],EAX
MOV EAX,dword ptr [EBP + 0x2a4]
MOV dword ptr [EBP + 0x294],EAX
MOV EAX,EBP
CALL 0x00025a60
MOV ESI,dword ptr [EBP + 0x290]
LEA EAX,[ESI + 0xfffffefa]
MOV dword ptr [ESP + 0x18],ESI
AND EAX,0xfffffffd
JZ 0x000265ac
TEST ESI,ESI
JNS 0x00026584
JMP 0x000265ac
TEST EAX,EAX
JS 0x000265a8
MOV EAX,EBP
CALL 0x00025a60
MOV EDX,0x105
MOV EAX,EBP
CALL 0x000221a0
MOV EAX,dword ptr [EBP + 0x290]
LEA EDX,[EAX + 0xfffffefa]
AND EDX,0xfffffffd
JNZ 0x00026580
MOV dword ptr [ESP + 0x18],EAX
CMP dword ptr [ESP + 0x18],0x106
JNZ 0x00026635
LEA ESI,[ESI]
LEA ESI,[ESI]
MOV EAX,EBP
CALL 0x00024d90
MOV dword ptr [EBP + 0x290],EAX
MOV EAX,EBP
CALL 0x00025a60
MOV EAX,dword ptr [EBP + 0x290]
LEA EDX,[EAX + 0xfffffefa]
AND EDX,0xfffffffd
JNZ 0x00026614
JMP 0x00026618
MOV EAX,EBP
CALL 0x00025a60
MOV EDX,0x105
MOV EAX,EBP
CALL 0x000221a0
MOV EAX,dword ptr [EBP + 0x290]
LEA EDX,[EAX + 0xfffffefa]
AND EDX,0xfffffffd
JZ 0x00026618
TEST EAX,EAX
JNS 0x000265f0
MOV EAX,EBP
MOV EDX,0x106
CALL 0x000221a0
MOV EAX,dword ptr [EBP + 0x290]
CMP EAX,0x106
JZ 0x000265c0
MOV dword ptr [ESP + 0x18],EAX
CMP dword ptr [ESP + 0x18],-0x1
JNZ 0x00026c36
MOV EDX,dword ptr [EBP + 0x2ac]
MOV EAX,EBP
NOT EDX
CALL 0x000221a0
MOV EAX,EBP
MOV EDX,0x105
CALL 0x000221a0
MOV EAX,dword ptr [EBP + 0x2ac]
TEST EAX,EAX
JNZ 0x00026b60
SUB ESP,0xc
ADD EAX,0x1
MOV ESI,EBP
MOV dword ptr [EBP + 0x2ac],EAX
PUSH 0x834
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x0002efa0
MOV ECX,0x20d
XOR EDX,EDX
MOV EDI,EAX
MOV dword ptr [ESP + 0x18],EAX
MOVSD.REP ES:EDI,ESI
MOV EDI,EAX
MOV byte ptr [EAX + 0x330],0x0
MOV EAX,dword ptr [ESP + 0x1c]
MOV dword ptr [EDI + 0x2d0],0x0
MOV dword ptr [EDI + 0x2d4],0x0
LEA EAX,[EAX + 0xfffd9ce4]
MOV dword ptr [ESP + 0x3c],EAX
ADD ESP,0x10
MOV dword ptr [EDI + 0x328],EAX
MOV dword ptr [EDI + 0x2d8],0x0
MOV dword ptr [EDI + 0x2dc],0x0
MOV EAX,dword ptr [EDI + 0x250]
MOV dword ptr [EDI + 0x2ec],0x0
MOV dword ptr [EDI + 0x2f0],0x0
MOV ECX,EAX
MOV dword ptr [EDI + 0x2e4],0x0
SHR ECX,0x1b
MOV dword ptr [EDI + 0x2f4],0x0
SETNZ DL
SHL EAX,0x5
MOV dword ptr [EDI + 0x300],0x0
MOV dword ptr [EDI + 0x304],0x0
MOV dword ptr [EDI + 0x308],0x0
MOV dword ptr [EDI + 0x30c],0x0
JS 0x00026c0e
TEST EDX,EDX
JNZ 0x00026c0e
SUB ESP,0xc
PUSH EAX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x0002efa0
MOV EBX,dword ptr [ESP + 0x18]
MOV EDX,dword ptr [EBP + 0x24c]
ADD ESP,0x10
MOV dword ptr [EBX + 0x248],EAX
TEST EDX,EDX
JNZ 0x00026b80
MOV EAX,dword ptr [EBP + 0x29c]
XOR EDX,EDX
MOV ECX,EAX
SHR ECX,0x1d
SETNZ DL
SHL EAX,0x3
JS 0x00026c0e
TEST EDX,EDX
JNZ 0x00026c0e
SUB ESP,0xc
PUSH EAX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x0002efa0
MOV EBX,dword ptr [ESP + 0x18]
ADD ESP,0x10
MOV dword ptr [EBX + 0x298],EAX
MOV EAX,dword ptr [EBP + 0x29c]
LEA EDX,[EAX + EAX*0x1]
MOV dword ptr [EBX + 0x2a0],EDX
TEST EAX,EAX
JZ 0x00026bb0
MOV EAX,dword ptr [EBP + 0x298]
XOR EDI,EDI
MOV byte ptr [ESP + 0x22],0x0
XOR EBX,EBX
XOR ESI,ESI
MOV dword ptr [ESP + 0x10],EBP
MOV dword ptr [ESP + 0x1c],EAX
LEA EAX,[ESP + 0x3c]
MOV dword ptr [ESP + 0x24],EAX
MOV EAX,EDI
MOV byte ptr [ESP + 0x21],AL
JMP 0x00026848
MOV EDI,0x1
SHL EDI,CL
MOV ECX,EDI
TEST EDI,0x301
JNZ 0x000268a8
MOV EBX,dword ptr [ESP + 0x8]
ADD EBP,dword ptr [EBX + 0x298]
AND ECX,0xf0
JZ 0x000268a0
MOV ESI,dword ptr [ESP + 0x10]
CMP byte ptr [ESI + 0x330],0x0
JZ 0x000268a0
MOV dword ptr [EBP],0x100
NOP
MOV EAX,dword ptr [ESP + 0x10]
MOV ESI,dword ptr [ESP + 0x14]
MOV EAX,dword ptr [EAX + 0x29c]
CMP EAX,ESI
JBE 0x00026950
MOV EBX,EDX
MOV EAX,dword ptr [ESP + 0x1c]
LEA EDI,[ESI + 0x1]
LEA EBP,[EBX*0x4 + 0x0]
LEA EDX,[EBX + 0x1]
MOV dword ptr [ESP + 0x14],EDI
MOV EAX,dword ptr [EAX + ESI*0x4]
LEA ECX,[EAX + 0xfffffef6]
CMP ECX,0x9
JBE 0x000267f0
MOV ESI,dword ptr [ESP + 0x8]
CMP EAX,0xff
MOV ECX,dword ptr [ESI + 0x298]
MOV dword ptr [ECX + EBX*0x4],EAX
SETBE CL
CMP EAX,0x113
SETG AL
OR CL,AL
MOVZX EAX,byte ptr [ESP + 0x21]
CMOVNZ EAX,ECX
MOV byte ptr [ESP + 0x21],AL
JMP 0x00026830
MOV dword ptr [EBP],EAX
JMP 0x00026830
MOV EDI,dword ptr [ESP + 0x8]
MOV EDX,dword ptr [ESP + 0x24]
MOV dword ptr [ESP + 0x3c],0xffffffff
MOV dword ptr [ESP + 0x40],0xffffffff
MOV EAX,EDI
MOV dword ptr [ESP + 0x44],0xffffffff
MOV dword ptr [ESP + 0x48],0xffffffff
MOV dword ptr [ESP + 0x4c],0xffffffff
MOV dword ptr [ESP + 0x50],0xffffffff
MOV dword ptr [ESP + 0x54],0xffffffff
MOV dword ptr [ESP + 0x58],0xffffffff
CALL 0x00020370
MOV ECX,dword ptr [EDI + 0x298]
LEA EDX,[EBX + 0x2]
LEA EBX,[ESI*0x4 + 0x0]
ADD EAX,0x114
ADD ESI,0x2
MOV dword ptr [ECX + EBP*0x1],EAX
MOV EAX,dword ptr [ESP + 0x10]
MOV dword ptr [ECX + EBP*0x1 + 0x4],0x102
MOV EAX,dword ptr [EAX + 0x298]
MOV dword ptr [ESP + 0x1c],EAX
MOV EAX,dword ptr [EAX + EBX*0x1 + 0x4]
SUB EAX,0x101
CMP EAX,0x3
MOVZX EAX,byte ptr [ESP + 0x23]
CMOVNC ESI,dword ptr [ESP + 0x14]
MOV byte ptr [ESP + 0x22],AL
MOV dword ptr [ESP + 0x14],ESI
JMP 0x00026830
MOVZX EDI,byte ptr [ESP + 0x21]
MOV ESI,dword ptr [ESP + 0x8]
MOV EBP,dword ptr [ESP + 0x10]
MOV EBX,EDI
MOV dword ptr [ESI + 0x29c],EDX
TEST BL,BL
JZ 0x00026a5d
CMP byte ptr [ESP + 0x22],0x0
JZ 0x00026a50
MOV ECX,dword ptr [ESP + 0x8]
MOV dword ptr [EBP + 0x2d4],ECX
TEST EAX,EAX
JZ 0x00026bc8
MOV EDX,dword ptr [EBP + 0x298]
XOR EBX,EBX
MOV ECX,dword ptr [EDX + EBX*0x4]
CMP ECX,0x10e
JL 0x00026a08
CMP ECX,0x111
JLE 0x000269f8
CMP ECX,0x113
JG 0x00026a08
MOV EAX,dword ptr [ESP + 0xc]
LEA EAX,[EAX + 0xfffd7774]
MOV dword ptr [EBP + 0x328],EAX
MOV EAX,dword ptr [EBP + 0x2d4]
TEST EAX,EAX
JZ 0x000269d8
MOV byte ptr [EBP + 0x2b0],0x1
MOVZX EDX,byte ptr [ESP + 0x28]
CALL 0x00022280
MOV EAX,dword ptr [ESP + 0x5c]
XOR EAX,dword ptr GS:[0x14]
JNZ 0x00026c45
ADD ESP,0x6c
POP EBX
POP ESI
POP EDI
POP EBP
RET
CMP byte ptr [EBP + 0x330],0x0
JNZ 0x000269ad
LEA ESI,[ESI]
ADD EBX,0x1
CMP EBX,EAX
JNZ 0x00026992
MOVZX ESI,byte ptr [EBP + 0x331]
MOV EBX,ESI
TEST BL,BL
JZ 0x00026a37
XOR EDI,EDI
XOR EBX,EBX
MOV ECX,dword ptr [EDX + EBX*0x4]
CMP ECX,0x112
JZ 0x00026ba0
CMP ECX,0x113
JNZ 0x00026a88
MOVZX EDX,byte ptr [ESP + 0x28]
MOV EAX,EBP
CALL 0x00022280
JMP 0x000269bd
CMP byte ptr [EBP + 0x330],0x0
JNZ 0x00026978
SUB ESP,0xc
MOV EBX,dword ptr [ESP + 0x14]
PUSH EBX
CALL 0x00026290
MOV dword ptr [ESP],EBX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00012740
MOV EAX,dword ptr [EBP + 0x29c]
ADD ESP,0x10
JMP 0x00026982
CMP ECX,0x10a
JZ 0x0001275f
ADD EBX,0x1
CMP EBX,EAX
JNZ 0x00026a20
MOV EAX,EDI
TEST AL,AL
JZ 0x00026bd5
SUB ESP,0xc
PUSH dword ptr [EBP + 0x2d0]
MOV ESI,dword ptr [ESP + 0x1c]
MOV EBX,ESI
CALL 0x00012740
POP ECX
PUSH dword ptr [EBP + 0x280]
CALL 0x00012740
POP ESI
PUSH dword ptr [EBP + 0x314]
CALL 0x00012740
MOV EAX,dword ptr [EBP + 0x320]
ADD ESP,0x10
TEST EAX,EAX
JZ 0x00026b26
MOV EDX,dword ptr [EBP + 0x2f4]
TEST EDX,EDX
JS 0x00026b13
MOV ESI,dword ptr [ESP + 0x18]
LEA ESI,[ESI]
SUB ESP,0xc
PUSH dword ptr [EAX + ESI*0x4]
ADD ESI,0x1
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00012740
ADD ESP,0x10
CMP ESI,dword ptr [EBP + 0x2f4]
MOV EAX,dword ptr [EBP + 0x320]
JL 0x00026af0
SUB ESP,0xc
SUB EAX,0x8
PUSH EAX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00012740
ADD ESP,0x10
MOV EAX,dword ptr [ESP + 0x2c]
MOV byte ptr [EBP + 0x330],0x0
MOV byte ptr [EBP + 0x2b0],0x1
MOV dword ptr [EBP + 0x328],EAX
JMP 0x00026a37
MOV EDX,0x10b
MOV EAX,EBP
CALL 0x000221a0
JMP 0x0002653c
MOV EAX,EBP
MOV EDX,0x106
CALL 0x000221a0
MOV EAX,dword ptr [EBP + 0x2ac]
JMP 0x00026669
SUB ESP,0x4
SHL EDX,0x5
PUSH EDX
PUSH dword ptr [EBP + 0x248]
PUSH EAX
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00012130
ADD ESP,0x10
JMP 0x00026773
MOV EDI,ESI
JMP 0x00026a94
MOV EAX,dword ptr [ESP + 0x8]
MOV dword ptr [EAX + 0x29c],0x0
JMP 0x00026a5d
CMP byte ptr [EBP + 0x331],0x0
JZ 0x00026a37
MOV EAX,dword ptr [EBP + 0x2d4]
TEST EAX,EAX
JZ 0x00026aa5
SUB ESP,0xc
PUSH EAX
CALL 0x00026290
POP EDI
PUSH dword ptr [EBP + 0x2d4]
MOV EBX,dword ptr [ESP + 0x1c]
CALL 0x00012740
ADD ESP,0x10
MOV dword ptr [EBP + 0x2d4],0x0
JMP 0x00026aa5
MOV EBX,dword ptr [ESP + 0xc]
CALL 0x0002f1c0
PUSH EAX
PUSH 0x5
MOV ESI,dword ptr [ESP + 0x14]
LEA EAX,[ESI + 0xffff347e]
PUSH EAX
MOV EBX,ESI
PUSH 0x0
CALL 0x00012180
MOV dword ptr [ESP],EAX
CALL 0x000143e0
PUSH EBP
PUSH 0x5
MOV ESI,dword ptr [ESP + 0x14]
LEA EAX,[ESI + 0xffff3492]
JMP 0x00026c24
CALL 0x00038830
(translation_unit "/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n\nvoid FUN_000264c0(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  void *__dest;\n  int iVar4;\n  uint uVar5;\n  char *pcVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  char cVar14;\n  char cVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  undefined4 uStackY_90;\n  undefined4 uStack_80;\n  undefined1 auStack_7c [8];\n  undefined4 *local_74;\n  undefined **local_70 [2];\n  uint local_68;\n  int local_64;\n  int local_60;\n  char local_5b;\n  char local_5a;\n  char local_59;\n  undefined4 *local_58;\n  undefined4 local_54;\n  undefined **local_50;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  bVar18 = 0;\n  local_70[0] = &__DT_PLTGOT;\n  puVar11 = auStack_7c;\n  local_54 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  param_3[0x98] = (undefined *)0xffffffff;\n  param_3[0x96] = (undefined *)param_1;\n  param_3[0x97] = (undefined *)param_2;\n  local_59 = *(char *)(param_3 + 1);\n  if (local_59 == '\0') {\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }\n  if (param_3[0xab] == (undefined *)0x0) {\n    FUN_000221a0();\n  }\n  uVar3 = FUN_00024d90();\n  param_3[0xa4] = (undefined *)uVar3;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025a60();\n  local_64 = (int)param_3[0xa4];\n  if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }\n  if (local_64 == 0x106) {\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }\n  if (local_64 != -1) {\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }\n  FUN_000221a0();\n  FUN_000221a0();\n  iVar7 = (int)param_3[0xab];\n  if (iVar7 != 0) {\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }\n  param_3[0xab] = (undefined *)(iVar7 + 1);\n  local_74 = (undefined4 *)FUN_0002efa0(0x834);\n  puVar12 = param_3;\n  puVar16 = local_74;\n  for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }\n  *(undefined1 *)(local_74 + 0xcc) = 0;\n  local_74[0xb4] = 0;\n  local_74[0xb5] = 0;\n  local_50 = local_70[0] + -0x98c7;\n  local_74[0xca] = local_50;\n  local_74[0xb6] = 0;\n  local_74[0xb7] = 0;\n  local_74[0xbb] = 0;\n  local_74[0xbc] = 0;\n  local_74[0xb9] = 0;\n  local_74[0xbd] = 0;\n  iVar7 = local_74[0x94] << 5;\n  local_74[0xc0] = 0;\n  local_74[0xc1] = 0;\n  local_74[0xc2] = 0;\n  local_74[0xc3] = 0;\n  if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {\nLAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    FUN_0002f1c0();\n  }\n  __dest = (void *)FUN_0002efa0(iVar7);\n  iVar7 = (int)param_3[0x93];\n  local_74[0x92] = __dest;\n  if (iVar7 != 0) {\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }\n  iVar7 = (int)param_3[0xa7] << 3;\n  if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;\n  uVar3 = FUN_0002efa0(iVar7);\n  local_74[0xa6] = uVar3;\n  iVar7 = (int)param_3[0xa7];\n  local_74[0xa8] = iVar7 * 2;\n  if (iVar7 == 0) {\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }\n  else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }\n  if (uVar5 == 0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }\n  else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }\n  free(param_3[0xb4]);\n  free(param_3[0xa0]);\n  free(param_3[0xc5]);\n  iVar7 = (int)param_3[200];\n  if (iVar7 != 0) {\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  *(undefined1 *)(param_3 + 0xac) = 1;\n  param_3[0xca] = (undefined *)local_50;\nLAB_00026a37:\n  FUN_00022280();\nLAB_000269bd:\n  if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00038830();\n}\n\n" comment (function_definition "void FUN_000264c0(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  void *__dest;\n  int iVar4;\n  uint uVar5;\n  char *pcVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  char cVar14;\n  char cVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  undefined4 uStackY_90;\n  undefined4 uStack_80;\n  undefined1 auStack_7c [8];\n  undefined4 *local_74;\n  undefined **local_70 [2];\n  uint local_68;\n  int local_64;\n  int local_60;\n  char local_5b;\n  char local_5a;\n  char local_59;\n  undefined4 *local_58;\n  undefined4 local_54;\n  undefined **local_50;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  bVar18 = 0;\n  local_70[0] = &__DT_PLTGOT;\n  puVar11 = auStack_7c;\n  local_54 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  param_3[0x98] = (undefined *)0xffffffff;\n  param_3[0x96] = (undefined *)param_1;\n  param_3[0x97] = (undefined *)param_2;\n  local_59 = *(char *)(param_3 + 1);\n  if (local_59 == '\0') {\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }\n  if (param_3[0xab] == (undefined *)0x0) {\n    FUN_000221a0();\n  }\n  uVar3 = FUN_00024d90();\n  param_3[0xa4] = (undefined *)uVar3;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025a60();\n  local_64 = (int)param_3[0xa4];\n  if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }\n  if (local_64 == 0x106) {\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }\n  if (local_64 != -1) {\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }\n  FUN_000221a0();\n  FUN_000221a0();\n  iVar7 = (int)param_3[0xab];\n  if (iVar7 != 0) {\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }\n  param_3[0xab] = (undefined *)(iVar7 + 1);\n  local_74 = (undefined4 *)FUN_0002efa0(0x834);\n  puVar12 = param_3;\n  puVar16 = local_74;\n  for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }\n  *(undefined1 *)(local_74 + 0xcc) = 0;\n  local_74[0xb4] = 0;\n  local_74[0xb5] = 0;\n  local_50 = local_70[0] + -0x98c7;\n  local_74[0xca] = local_50;\n  local_74[0xb6] = 0;\n  local_74[0xb7] = 0;\n  local_74[0xbb] = 0;\n  local_74[0xbc] = 0;\n  local_74[0xb9] = 0;\n  local_74[0xbd] = 0;\n  iVar7 = local_74[0x94] << 5;\n  local_74[0xc0] = 0;\n  local_74[0xc1] = 0;\n  local_74[0xc2] = 0;\n  local_74[0xc3] = 0;\n  if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {\nLAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    FUN_0002f1c0();\n  }\n  __dest = (void *)FUN_0002efa0(iVar7);\n  iVar7 = (int)param_3[0x93];\n  local_74[0x92] = __dest;\n  if (iVar7 != 0) {\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }\n  iVar7 = (int)param_3[0xa7] << 3;\n  if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;\n  uVar3 = FUN_0002efa0(iVar7);\n  local_74[0xa6] = uVar3;\n  iVar7 = (int)param_3[0xa7];\n  local_74[0xa8] = iVar7 * 2;\n  if (iVar7 == 0) {\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }\n  else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }\n  if (uVar5 == 0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }\n  else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }\n  free(param_3[0xb4]);\n  free(param_3[0xa0]);\n  free(param_3[0xc5]);\n  iVar7 = (int)param_3[200];\n  if (iVar7 != 0) {\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  *(undefined1 *)(param_3 + 0xac) = 1;\n  param_3[0xca] = (undefined *)local_50;\nLAB_00026a37:\n  FUN_00022280();\nLAB_000269bd:\n  if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00038830();\n}" primitive_type (function_declarator "FUN_000264c0(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined **param_3" type_identifier (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier))) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  void *__dest;\n  int iVar4;\n  uint uVar5;\n  char *pcVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  char cVar14;\n  char cVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  undefined4 uStackY_90;\n  undefined4 uStack_80;\n  undefined1 auStack_7c [8];\n  undefined4 *local_74;\n  undefined **local_70 [2];\n  uint local_68;\n  int local_64;\n  int local_60;\n  char local_5b;\n  char local_5a;\n  char local_59;\n  undefined4 *local_58;\n  undefined4 local_54;\n  undefined **local_50;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  bVar18 = 0;\n  local_70[0] = &__DT_PLTGOT;\n  puVar11 = auStack_7c;\n  local_54 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  param_3[0x98] = (undefined *)0xffffffff;\n  param_3[0x96] = (undefined *)param_1;\n  param_3[0x97] = (undefined *)param_2;\n  local_59 = *(char *)(param_3 + 1);\n  if (local_59 == '\0') {\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }\n  if (param_3[0xab] == (undefined *)0x0) {\n    FUN_000221a0();\n  }\n  uVar3 = FUN_00024d90();\n  param_3[0xa4] = (undefined *)uVar3;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025a60();\n  local_64 = (int)param_3[0xa4];\n  if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }\n  if (local_64 == 0x106) {\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }\n  if (local_64 != -1) {\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }\n  FUN_000221a0();\n  FUN_000221a0();\n  iVar7 = (int)param_3[0xab];\n  if (iVar7 != 0) {\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }\n  param_3[0xab] = (undefined *)(iVar7 + 1);\n  local_74 = (undefined4 *)FUN_0002efa0(0x834);\n  puVar12 = param_3;\n  puVar16 = local_74;\n  for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }\n  *(undefined1 *)(local_74 + 0xcc) = 0;\n  local_74[0xb4] = 0;\n  local_74[0xb5] = 0;\n  local_50 = local_70[0] + -0x98c7;\n  local_74[0xca] = local_50;\n  local_74[0xb6] = 0;\n  local_74[0xb7] = 0;\n  local_74[0xbb] = 0;\n  local_74[0xbc] = 0;\n  local_74[0xb9] = 0;\n  local_74[0xbd] = 0;\n  iVar7 = local_74[0x94] << 5;\n  local_74[0xc0] = 0;\n  local_74[0xc1] = 0;\n  local_74[0xc2] = 0;\n  local_74[0xc3] = 0;\n  if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {\nLAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    FUN_0002f1c0();\n  }\n  __dest = (void *)FUN_0002efa0(iVar7);\n  iVar7 = (int)param_3[0x93];\n  local_74[0x92] = __dest;\n  if (iVar7 != 0) {\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }\n  iVar7 = (int)param_3[0xa7] << 3;\n  if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;\n  uVar3 = FUN_0002efa0(iVar7);\n  local_74[0xa6] = uVar3;\n  iVar7 = (int)param_3[0xa7];\n  local_74[0xa8] = iVar7 * 2;\n  if (iVar7 == 0) {\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }\n  else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }\n  if (uVar5 == 0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }\n  else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }\n  free(param_3[0xb4]);\n  free(param_3[0xa0]);\n  free(param_3[0xc5]);\n  iVar7 = (int)param_3[200];\n  if (iVar7 != 0) {\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  *(undefined1 *)(param_3 + 0xac) = 1;\n  param_3[0xca] = (undefined *)local_50;\nLAB_00026a37:\n  FUN_00022280();\nLAB_000269bd:\n  if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  FUN_00038830();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "undefined4 uStackY_90;" type_identifier identifier ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "undefined1 auStack_7c [8];" type_identifier (array_declarator "auStack_7c [8]" identifier [ number_literal ]) ;) (declaration "undefined4 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined **local_70 [2];" type_identifier (pointer_declarator "**local_70 [2]" * (pointer_declarator "*local_70 [2]" * (array_declarator "local_70 [2]" identifier [ number_literal ]))) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "char local_5b;" primitive_type identifier ;) (declaration "char local_5a;" primitive_type identifier ;) (declaration "char local_59;" primitive_type identifier ;) (declaration "undefined4 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined **local_50;" type_identifier (pointer_declarator "**local_50" * (pointer_declarator "*local_50" * identifier)) ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "local_70[0] = &__DT_PLTGOT;" (assignment_expression "local_70[0] = &__DT_PLTGOT" (subscript_expression "local_70[0]" identifier [ number_literal ]) = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puVar11 = auStack_7c;" (assignment_expression "puVar11 = auStack_7c" identifier = identifier) ;) (expression_statement "local_54 = param_4;" (assignment_expression "local_54 = param_4" identifier = identifier) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + 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 "param_3[0x98] = (undefined *)0xffffffff;" (assignment_expression "param_3[0x98] = (undefined *)0xffffffff" (subscript_expression "param_3[0x98]" identifier [ number_literal ]) = (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3[0x96] = (undefined *)param_1;" (assignment_expression "param_3[0x96] = (undefined *)param_1" (subscript_expression "param_3[0x96]" identifier [ number_literal ]) = (cast_expression "(undefined *)param_1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "param_3[0x97] = (undefined *)param_2;" (assignment_expression "param_3[0x97] = (undefined *)param_2" (subscript_expression "param_3[0x97]" identifier [ number_literal ]) = (cast_expression "(undefined *)param_2" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_59 = *(char *)(param_3 + 1);" (assignment_expression "local_59 = *(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 (local_59 == '\0') {\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }" if (parenthesized_expression "(local_59 == '\0')" ( (binary_expression "local_59 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }" { (expression_statement "puVar10 = &stack0xffffff7c;" (assignment_expression "puVar10 = &stack0xffffff7c" identifier = (pointer_expression "&stack0xffffff7c" & identifier)) ;) (expression_statement "pcVar6 = "no syntax specified";" (assignment_expression "pcVar6 = "no syntax specified"" identifier = (string_literal ""no syntax specified"" " string_content ")) ;) (goto_statement "goto LAB_00026c24;" goto statement_identifier ;) })) (if_statement "if (param_3[0xab] == (undefined *)0x0) {\n    FUN_000221a0();\n  }" if (parenthesized_expression "(param_3[0xab] == (undefined *)0x0)" ( (binary_expression "param_3[0xab] == (undefined *)0x0" (subscript_expression "param_3[0xab]" identifier [ number_literal ]) == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_000221a0();\n  }" { (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar3 = FUN_00024d90();" (assignment_expression "uVar3 = FUN_00024d90()" identifier = (call_expression "FUN_00024d90()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_3[0xa4] = (undefined *)uVar3;" (assignment_expression "param_3[0xa4] = (undefined *)uVar3" (subscript_expression "param_3[0xa4]" identifier [ number_literal ]) = (cast_expression "(undefined *)uVar3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) 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_00025a60();" (call_expression "FUN_00025a60()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_64 = (int)param_3[0xa4];" (assignment_expression "local_64 = (int)param_3[0xa4]" identifier = (cast_expression "(int)param_3[0xa4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa4]" identifier [ number_literal ]))) ;) (if_statement "if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }" if (parenthesized_expression "(((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64))" ( (binary_expression "((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)" (parenthesized_expression "((local_64 - 0x106U & 0xfffffffd) != 0)" ( (binary_expression "(local_64 - 0x106U & 0xfffffffd) != 0" (parenthesized_expression "(local_64 - 0x106U & 0xfffffffd)" ( (binary_expression "local_64 - 0x106U & 0xfffffffd" (binary_expression "local_64 - 0x106U" identifier - number_literal) & number_literal) )) != number_literal) )) && (parenthesized_expression "(-1 < local_64)" ( (binary_expression "-1 < local_64" number_literal < identifier) ))) )) (compound_statement "{\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }" { (do_statement "do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);" do (compound_statement "{\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    }" { (expression_statement "FUN_00025a60();" (call_expression "FUN_00025a60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = (int)param_3[0xa4];" (assignment_expression "iVar7 = (int)param_3[0xa4]" identifier = (cast_expression "(int)param_3[0xa4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa4]" identifier [ number_literal ]))) ;) (if_statement "if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;" if (parenthesized_expression "((iVar7 - 0x106U & 0xfffffffd) == 0)" ( (binary_expression "(iVar7 - 0x106U & 0xfffffffd) == 0" (parenthesized_expression "(iVar7 - 0x106U & 0xfffffffd)" ( (binary_expression "iVar7 - 0x106U & 0xfffffffd" (binary_expression "iVar7 - 0x106U" identifier - number_literal) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) ;) (expression_statement "local_64 = iVar7;" (assignment_expression "local_64 = iVar7" identifier = identifier) ;) })) (if_statement "if (local_64 == 0x106) {\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }" if (parenthesized_expression "(local_64 == 0x106)" ( (binary_expression "local_64 == 0x106" identifier == number_literal) )) (compound_statement "{\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }" { (do_statement "do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);" do (compound_statement "{\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    }" { (expression_statement "uVar3 = FUN_00024d90();" (assignment_expression "uVar3 = FUN_00024d90()" identifier = (call_expression "FUN_00024d90()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_3[0xa4] = (undefined *)uVar3;" (assignment_expression "param_3[0xa4] = (undefined *)uVar3" (subscript_expression "param_3[0xa4]" identifier [ number_literal ]) = (cast_expression "(undefined *)uVar3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_00025a60();" (call_expression "FUN_00025a60()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = (int)param_3[0xa4];" (assignment_expression "iVar7 = (int)param_3[0xa4]" identifier = (cast_expression "(int)param_3[0xa4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa4]" identifier [ number_literal ]))) ;) (while_statement "while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }" while (parenthesized_expression "(((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7)))" ( (parenthesized_expression "((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))" ( (binary_expression "(iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7)" (binary_expression "(iVar7 - 0x106U & 0xfffffffd) != 0" (parenthesized_expression "(iVar7 - 0x106U & 0xfffffffd)" ( (binary_expression "iVar7 - 0x106U & 0xfffffffd" (binary_expression "iVar7 - 0x106U" identifier - number_literal) & number_literal) )) != number_literal) && (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) ))) )) )) (compound_statement "{\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }" { (expression_statement "FUN_00025a60();" (call_expression "FUN_00025a60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = (int)param_3[0xa4];" (assignment_expression "iVar7 = (int)param_3[0xa4]" identifier = (cast_expression "(int)param_3[0xa4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa4]" identifier [ number_literal ]))) ;) })) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(param_3[0xa4] == (undefined *)0x106)" ( (binary_expression "param_3[0xa4] == (undefined *)0x106" (subscript_expression "param_3[0xa4]" identifier [ number_literal ]) == (cast_expression "(undefined *)0x106" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_64 = (int)param_3[0xa4];" (assignment_expression "local_64 = (int)param_3[0xa4]" identifier = (cast_expression "(int)param_3[0xa4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa4]" identifier [ number_literal ]))) ;) })) (if_statement "if (local_64 != -1) {\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }" if (parenthesized_expression "(local_64 != -1)" ( (binary_expression "local_64 != -1" identifier != number_literal) )) (compound_statement "{\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }" { (do_statement "do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );" do (compound_statement "{\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    }" { (expression_statement "*(undefined ***)(puVar11 + -4) = param_3;" (assignment_expression "*(undefined ***)(puVar11 + -4) = param_3" (pointer_expression "*(undefined ***)(puVar11 + -4)" * (cast_expression "(undefined ***)(puVar11 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar11 + -4)" ( (binary_expression "puVar11 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = puVar11 + -8;" (assignment_expression "puVar10 = puVar11 + -8" identifier = (binary_expression "puVar11 + -8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar11 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar11 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar11 + -8)" * (cast_expression "(undefined4 *)(puVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);" (assignment_expression "pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0xc) + -0xcb6e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0xc) + -0xcb6e)" ( (binary_expression "*(int *)(puVar11 + 0xc) + -0xcb6e" (pointer_expression "*(int *)(puVar11 + 0xc)" * (cast_expression "(int *)(puVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;" statement_identifier : (expression_statement "*(char **)(puVar10 + -4) = pcVar6;" (assignment_expression "*(char **)(puVar10 + -4) = pcVar6" (pointer_expression "*(char **)(puVar10 + -4)" * (cast_expression "(char **)(puVar10 + -4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;)) (expression_statement "puVar11 = puVar10 + -8;" (assignment_expression "puVar11 = puVar10 + -8" identifier = (binary_expression "puVar10 + -8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = 0x26c2e;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = 0x26c2e" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar3 = dcgettext();" (assignment_expression "uVar3 = dcgettext()" identifier = (call_expression "dcgettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar10 + -8) = uVar3;" (assignment_expression "*(undefined4 *)(puVar10 + -8) = uVar3" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = 0x26c36;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = 0x26c36" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000143e0();" (call_expression "FUN_000143e0()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = (int)param_3[0xab];" (assignment_expression "iVar7 = (int)param_3[0xab]" identifier = (cast_expression "(int)param_3[0xab]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xab]" identifier [ number_literal ]))) ;) (if_statement "if (iVar7 != 0) {\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }" { (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = (int)param_3[0xab];" (assignment_expression "iVar7 = (int)param_3[0xab]" identifier = (cast_expression "(int)param_3[0xab]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xab]" identifier [ number_literal ]))) ;) })) (expression_statement "param_3[0xab] = (undefined *)(iVar7 + 1);" (assignment_expression "param_3[0xab] = (undefined *)(iVar7 + 1)" (subscript_expression "param_3[0xab]" identifier [ number_literal ]) = (cast_expression "(undefined *)(iVar7 + 1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 1)" ( (binary_expression "iVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "local_74 = (undefined4 *)FUN_0002efa0(0x834);" (assignment_expression "local_74 = (undefined4 *)FUN_0002efa0(0x834)" identifier = (cast_expression "(undefined4 *)FUN_0002efa0(0x834)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002efa0(0x834)" identifier (argument_list "(0x834)" ( number_literal ))))) ;) (expression_statement "puVar12 = param_3;" (assignment_expression "puVar12 = param_3" identifier = identifier) ;) (expression_statement "puVar16 = local_74;" (assignment_expression "puVar16 = local_74" identifier = identifier) ;) (for_statement "for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }" for ( (assignment_expression "iVar7 = 0x20d" identifier = number_literal) ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }" { (expression_statement "*puVar16 = *puVar12;" (assignment_expression "*puVar16 = *puVar12" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar12 = puVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar12 = puVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar12 + (uint)bVar18 * -2 + 1" (binary_expression "puVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined1 *)(local_74 + 0xcc) = 0;" (assignment_expression "*(undefined1 *)(local_74 + 0xcc) = 0" (pointer_expression "*(undefined1 *)(local_74 + 0xcc)" * (cast_expression "(undefined1 *)(local_74 + 0xcc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74 + 0xcc)" ( (binary_expression "local_74 + 0xcc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_74[0xb4] = 0;" (assignment_expression "local_74[0xb4] = 0" (subscript_expression "local_74[0xb4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xb5] = 0;" (assignment_expression "local_74[0xb5] = 0" (subscript_expression "local_74[0xb5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_50 = local_70[0] + -0x98c7;" (assignment_expression "local_50 = local_70[0] + -0x98c7" identifier = (binary_expression "local_70[0] + -0x98c7" (subscript_expression "local_70[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "local_74[0xca] = local_50;" (assignment_expression "local_74[0xca] = local_50" (subscript_expression "local_74[0xca]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_74[0xb6] = 0;" (assignment_expression "local_74[0xb6] = 0" (subscript_expression "local_74[0xb6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xb7] = 0;" (assignment_expression "local_74[0xb7] = 0" (subscript_expression "local_74[0xb7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xbb] = 0;" (assignment_expression "local_74[0xbb] = 0" (subscript_expression "local_74[0xbb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xbc] = 0;" (assignment_expression "local_74[0xbc] = 0" (subscript_expression "local_74[0xbc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xb9] = 0;" (assignment_expression "local_74[0xb9] = 0" (subscript_expression "local_74[0xb9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xbd] = 0;" (assignment_expression "local_74[0xbd] = 0" (subscript_expression "local_74[0xbd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = local_74[0x94] << 5;" (assignment_expression "iVar7 = local_74[0x94] << 5" identifier = (binary_expression "local_74[0x94] << 5" (subscript_expression "local_74[0x94]" identifier [ number_literal ]) << number_literal)) ;) (expression_statement "local_74[0xc0] = 0;" (assignment_expression "local_74[0xc0] = 0" (subscript_expression "local_74[0xc0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xc1] = 0;" (assignment_expression "local_74[0xc1] = 0" (subscript_expression "local_74[0xc1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xc2] = 0;" (assignment_expression "local_74[0xc2] = 0" (subscript_expression "local_74[0xc2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xc3] = 0;" (assignment_expression "local_74[0xc3] = 0" (subscript_expression "local_74[0xc3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {\nLAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    FUN_0002f1c0();\n  }" if (parenthesized_expression "((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0))" ( (binary_expression "(iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)" (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) || (parenthesized_expression "((uint)local_74[0x94] >> 0x1b != 0)" ( (binary_expression "(uint)local_74[0x94] >> 0x1b != 0" (binary_expression "(uint)local_74[0x94] >> 0x1b" (cast_expression "(uint)local_74[0x94]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_74[0x94]" identifier [ number_literal ])) >> number_literal) != number_literal) ))) )) (compound_statement "{\nLAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    FUN_0002f1c0();\n  }" { (labeled_statement "LAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    FUN_0002f1c0();" statement_identifier : comment (expression_statement "FUN_0002f1c0();" (call_expression "FUN_0002f1c0()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "__dest = (void *)FUN_0002efa0(iVar7);" (assignment_expression "__dest = (void *)FUN_0002efa0(iVar7)" identifier = (cast_expression "(void *)FUN_0002efa0(iVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002efa0(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "iVar7 = (int)param_3[0x93];" (assignment_expression "iVar7 = (int)param_3[0x93]" identifier = (cast_expression "(int)param_3[0x93]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0x93]" identifier [ number_literal ]))) ;) (expression_statement "local_74[0x92] = __dest;" (assignment_expression "local_74[0x92] = __dest" (subscript_expression "local_74[0x92]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 != 0) {\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }" { (expression_statement "memcpy(__dest,param_3[0x92],iVar7 << 5);" (call_expression "memcpy(__dest,param_3[0x92],iVar7 << 5)" identifier (argument_list "(__dest,param_3[0x92],iVar7 << 5)" ( identifier , (subscript_expression "param_3[0x92]" identifier [ number_literal ]) , (binary_expression "iVar7 << 5" identifier << number_literal) ))) ;) })) (expression_statement "iVar7 = (int)param_3[0xa7] << 3;" (assignment_expression "iVar7 = (int)param_3[0xa7] << 3" identifier = (binary_expression "(int)param_3[0xa7] << 3" (cast_expression "(int)param_3[0xa7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) << number_literal)) ;) (if_statement "if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;" if (parenthesized_expression "((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0))" ( (binary_expression "(iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)" (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) || (parenthesized_expression "((uint)param_3[0xa7] >> 0x1d != 0)" ( (binary_expression "(uint)param_3[0xa7] >> 0x1d != 0" (binary_expression "(uint)param_3[0xa7] >> 0x1d" (cast_expression "(uint)param_3[0xa7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) >> number_literal) != number_literal) ))) )) (goto_statement "goto LAB_00026c0e;" goto statement_identifier ;)) (expression_statement "uVar3 = FUN_0002efa0(iVar7);" (assignment_expression "uVar3 = FUN_0002efa0(iVar7)" identifier = (call_expression "FUN_0002efa0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "local_74[0xa6] = uVar3;" (assignment_expression "local_74[0xa6] = uVar3" (subscript_expression "local_74[0xa6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = (int)param_3[0xa7];" (assignment_expression "iVar7 = (int)param_3[0xa7]" identifier = (cast_expression "(int)param_3[0xa7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ]))) ;) (expression_statement "local_74[0xa8] = iVar7 * 2;" (assignment_expression "local_74[0xa8] = iVar7 * 2" (subscript_expression "local_74[0xa8]" identifier [ number_literal ]) = (binary_expression "iVar7 * 2" identifier * number_literal)) ;) (if_statement "if (iVar7 == 0) {\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }\n  else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }" { (expression_statement "local_74[0xa7] = 0;" (assignment_expression "local_74[0xa7] = 0" (subscript_expression "local_74[0xa7]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00026a5d:\n    puVar12 = local_74;" statement_identifier : (expression_statement "puVar12 = local_74;" (assignment_expression "puVar12 = local_74" identifier = identifier) ;)) (expression_statement "FUN_00026290(local_74);" (call_expression "FUN_00026290(local_74)" identifier (argument_list "(local_74)" ( identifier ))) ;) (expression_statement "free(puVar12);" (call_expression "free(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "uVar5 = (uint)param_3[0xa7];" (assignment_expression "uVar5 = (uint)param_3[0xa7]" identifier = (cast_expression "(uint)param_3[0xa7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }" else (compound_statement "{\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }" { (expression_statement "local_60 = (int)param_3[0xa6];" (assignment_expression "local_60 = (int)param_3[0xa6]" identifier = (cast_expression "(int)param_3[0xa6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa6]" identifier [ number_literal ]))) ;) (expression_statement "local_5a = '\0';" (assignment_expression "local_5a = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_70[1] = param_3;" (assignment_expression "local_70[1] = param_3" (subscript_expression "local_70[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_58 = &local_40;" (assignment_expression "local_58 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "local_5b = '\0';" (assignment_expression "local_5b = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);" do (compound_statement "{\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    }" { (expression_statement "puVar12 = local_74;" (assignment_expression "puVar12 = local_74" identifier = identifier) ;) (expression_statement "local_68 = uVar9 + 1;" (assignment_expression "local_68 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar7 * 4;" (assignment_expression "iVar13 = iVar7 * 4" identifier = (binary_expression "iVar7 * 4" identifier * number_literal)) ;) (expression_statement "iVar8 = iVar7 + 1;" (assignment_expression "iVar8 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = *(uint *)(local_60 + uVar9 * 4);" (assignment_expression "uVar5 = *(uint *)(local_60 + uVar9 * 4)" identifier = (pointer_expression "*(uint *)(local_60 + uVar9 * 4)" * (cast_expression "(uint *)(local_60 + uVar9 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_60 + uVar9 * 4)" ( (binary_expression "local_60 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar2 = local_68;" (assignment_expression "uVar2 = local_68" identifier = identifier) ;) (if_statement "if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }" if (parenthesized_expression "(uVar5 - 0x10a < 10)" ( (binary_expression "uVar5 - 0x10a < 10" (binary_expression "uVar5 - 0x10a" identifier - number_literal) < number_literal) )) (compound_statement "{\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }" { (expression_statement "uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);" (assignment_expression "uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f)" identifier = (binary_expression "1 << ((byte)(uVar5 - 0x10a) & 0x1f)" number_literal << (parenthesized_expression "((byte)(uVar5 - 0x10a) & 0x1f)" ( (binary_expression "(byte)(uVar5 - 0x10a) & 0x1f" (call_expression "(byte)(uVar5 - 0x10a)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar5 - 0x10a)" ( (binary_expression "uVar5 - 0x10a" identifier - number_literal) ))) & number_literal) )))) ;) (if_statement "if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }" if (parenthesized_expression "((uVar17 & 0x301) == 0)" ( (binary_expression "(uVar17 & 0x301) == 0" (parenthesized_expression "(uVar17 & 0x301)" ( (binary_expression "uVar17 & 0x301" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }" { (if_statement "if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }" if (parenthesized_expression "(((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0'))" ( (binary_expression "((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')" (parenthesized_expression "((uVar17 & 0xf0) == 0)" ( (binary_expression "(uVar17 & 0xf0) == 0" (parenthesized_expression "(uVar17 & 0xf0)" ( (binary_expression "uVar17 & 0xf0" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(char *)(local_70[1] + 0xcc) == '\0')" ( (binary_expression "*(char *)(local_70[1] + 0xcc) == '\0'" (pointer_expression "*(char *)(local_70[1] + 0xcc)" * (cast_expression "(char *)(local_70[1] + 0xcc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70[1] + 0xcc)" ( (binary_expression "local_70[1] + 0xcc" (subscript_expression "local_70[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }" { (expression_statement "*(uint *)(iVar13 + local_74[0xa6]) = uVar5;" (assignment_expression "*(uint *)(iVar13 + local_74[0xa6]) = uVar5" (pointer_expression "*(uint *)(iVar13 + local_74[0xa6])" * (cast_expression "(uint *)(iVar13 + local_74[0xa6])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + local_74[0xa6])" ( (binary_expression "iVar13 + local_74[0xa6]" identifier + (subscript_expression "local_74[0xa6]" identifier [ number_literal ])) )))) = identifier) ;) }) (else_clause "else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }" else (compound_statement "{\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }" { (expression_statement "*(uint *)(iVar13 + local_74[0xa6]) = 0x100;" (assignment_expression "*(uint *)(iVar13 + local_74[0xa6]) = 0x100" (pointer_expression "*(uint *)(iVar13 + local_74[0xa6])" * (cast_expression "(uint *)(iVar13 + local_74[0xa6])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + local_74[0xa6])" ( (binary_expression "iVar13 + local_74[0xa6]" identifier + (subscript_expression "local_74[0xa6]" identifier [ number_literal ])) )))) = number_literal) ;) }))) }) (else_clause "else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }" else (compound_statement "{\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }" { (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_3c = 0xffffffff;" (assignment_expression "local_3c = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_38 = 0xffffffff;" (assignment_expression "local_38 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_30 = 0xffffffff;" (assignment_expression "local_30 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_2c = 0xffffffff;" (assignment_expression "local_2c = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_28 = 0xffffffff;" (assignment_expression "local_28 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_24 = 0xffffffff;" (assignment_expression "local_24 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar4 = FUN_00020370();" (assignment_expression "iVar4 = FUN_00020370()" identifier = (call_expression "FUN_00020370()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = puVar12[0xa6];" (assignment_expression "iVar1 = puVar12[0xa6]" identifier = (subscript_expression "puVar12[0xa6]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = iVar7 + 2;" (assignment_expression "iVar8 = iVar7 + 2" identifier = (binary_expression "iVar7 + 2" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar1 + iVar13) = iVar4 + 0x114;" (assignment_expression "*(int *)(iVar1 + iVar13) = iVar4 + 0x114" (pointer_expression "*(int *)(iVar1 + iVar13)" * (cast_expression "(int *)(iVar1 + iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar13)" ( (binary_expression "iVar1 + iVar13" identifier + identifier) )))) = (binary_expression "iVar4 + 0x114" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;" (assignment_expression "*(undefined4 *)(iVar1 + 4 + iVar13) = 0x102" (pointer_expression "*(undefined4 *)(iVar1 + 4 + iVar13)" * (cast_expression "(undefined4 *)(iVar1 + 4 + iVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4 + iVar13)" ( (binary_expression "iVar1 + 4 + iVar13" (binary_expression "iVar1 + 4" identifier + number_literal) + identifier) )))) = number_literal) ;) (expression_statement "local_60 = (int)local_70[1][0xa6];" (assignment_expression "local_60 = (int)local_70[1][0xa6]" identifier = (cast_expression "(int)local_70[1][0xa6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_70[1][0xa6]" (subscript_expression "local_70[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "local_5a = local_59;" (assignment_expression "local_5a = local_59" identifier = identifier) ;) (expression_statement "uVar2 = uVar9 + 2;" (assignment_expression "uVar2 = uVar9 + 2" identifier = (binary_expression "uVar9 + 2" identifier + number_literal)) ;) (if_statement "if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }" if (parenthesized_expression "(2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U)" ( (binary_expression "2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U" number_literal < (binary_expression "*(int *)(local_60 + 4 + uVar9 * 4) - 0x101U" (pointer_expression "*(int *)(local_60 + 4 + uVar9 * 4)" * (cast_expression "(int *)(local_60 + 4 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_60 + 4 + uVar9 * 4)" ( (binary_expression "local_60 + 4 + uVar9 * 4" (binary_expression "local_60 + 4" identifier + number_literal) + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) - number_literal)) )) (compound_statement "{\n            uVar2 = local_68;\n          }" { (expression_statement "uVar2 = local_68;" (assignment_expression "uVar2 = local_68" identifier = identifier) ;) })) }))) }) (else_clause "else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }" else (compound_statement "{\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }" { (expression_statement "*(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;" (assignment_expression "*(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5" (pointer_expression "*(uint *)(local_74[0xa6] + iVar7 * 4)" * (cast_expression "(uint *)(local_74[0xa6] + iVar7 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74[0xa6] + iVar7 * 4)" ( (binary_expression "local_74[0xa6] + iVar7 * 4" (subscript_expression "local_74[0xa6]" identifier [ number_literal ]) + (binary_expression "iVar7 * 4" identifier * number_literal)) )))) = identifier) ;) (if_statement "if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }" if (parenthesized_expression "(uVar5 < 0x100 || 0x113 < (int)uVar5)" ( (binary_expression "uVar5 < 0x100 || 0x113 < (int)uVar5" (binary_expression "uVar5 < 0x100" identifier < number_literal) || (binary_expression "0x113 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }" { (expression_statement "local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;" (assignment_expression "local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5" identifier = (binary_expression "uVar5 < 0x100 || 0x113 < (int)uVar5" (binary_expression "uVar5 < 0x100" identifier < number_literal) || (binary_expression "0x113 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) }))) (expression_statement "local_68 = uVar2;" (assignment_expression "local_68 = uVar2" identifier = identifier) ;) (expression_statement "uVar5 = (uint)local_70[1][0xa7];" (assignment_expression "uVar5 = (uint)local_70[1][0xa7]" identifier = (cast_expression "(uint)local_70[1][0xa7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_70[1][0xa7]" (subscript_expression "local_70[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "iVar7 = iVar8;" (assignment_expression "iVar7 = iVar8" identifier = identifier) ;) (expression_statement "uVar9 = local_68;" (assignment_expression "uVar9 = local_68" identifier = identifier) ;) }) while (parenthesized_expression "(local_68 < uVar5)" ( (binary_expression "local_68 < uVar5" identifier < identifier) )) ;) (expression_statement "local_74[0xa7] = iVar8;" (assignment_expression "local_74[0xa7] = iVar8" (subscript_expression "local_74[0xa7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3 = local_70[1];" (assignment_expression "param_3 = local_70[1]" identifier = (subscript_expression "local_70[1]" identifier [ number_literal ])) ;) (if_statement "if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;" if (parenthesized_expression "((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))" ( (binary_expression "(local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0')))" (parenthesized_expression "(local_5b == '\0')" ( (binary_expression "local_5b == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0')))" ( (parenthesized_expression "(local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))" ( (binary_expression "local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0')" (binary_expression "local_5a == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(*(char *)(local_70[1] + 0xcc) == '\0')" ( (binary_expression "*(char *)(local_70[1] + 0xcc) == '\0'" (pointer_expression "*(char *)(local_70[1] + 0xcc)" * (cast_expression "(char *)(local_70[1] + 0xcc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70[1] + 0xcc)" ( (binary_expression "local_70[1] + 0xcc" (subscript_expression "local_70[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (goto_statement "goto LAB_00026a5d;" goto statement_identifier ;)) (expression_statement "local_70[1][0xb5] = (undefined *)local_74;" (assignment_expression "local_70[1][0xb5] = (undefined *)local_74" (subscript_expression "local_70[1][0xb5]" (subscript_expression "local_70[1]" identifier [ number_literal ]) [ number_literal ]) = (cast_expression "(undefined *)local_74" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (if_statement "if (uVar5 == 0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }\n  else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }" { (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;" 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_00026a37;" goto statement_identifier ;)) (labeled_statement "LAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }" statement_identifier : (if_statement "if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }" if (parenthesized_expression "(param_3[0xb5] != (undefined *)0x0)" ( (binary_expression "param_3[0xb5] != (undefined *)0x0" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }" { (expression_statement "FUN_00026290(param_3[0xb5]);" (call_expression "FUN_00026290(param_3[0xb5])" identifier (argument_list "(param_3[0xb5])" ( (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) ))) ;) (expression_statement "free(param_3[0xb5]);" (call_expression "free(param_3[0xb5])" identifier (argument_list "(param_3[0xb5])" ( (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) ))) ;) (expression_statement "param_3[0xb5] = (undefined *)0x0;" (assignment_expression "param_3[0xb5] = (undefined *)0x0" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }" else (compound_statement "{\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);" do (compound_statement "{\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    }" { (expression_statement "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);" (assignment_expression "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4)" identifier = (pointer_expression "*(int *)((int)param_3[0xa6] + uVar9 * 4)" * (cast_expression "(int *)((int)param_3[0xa6] + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3[0xa6] + uVar9 * 4)" ( (binary_expression "(int)param_3[0xa6] + uVar9 * 4" (cast_expression "(int)param_3[0xa6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa6]" identifier [ number_literal ])) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }" if (parenthesized_expression "(0x10d < iVar7)" ( (binary_expression "0x10d < iVar7" number_literal < identifier) )) (compound_statement "{\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }" { (if_statement "if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" if (parenthesized_expression "(iVar7 < 0x112)" ( (binary_expression "iVar7 < 0x112" identifier < number_literal) )) (compound_statement "{\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }" { (if_statement "if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;" 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_000269ad;" goto statement_identifier ;)) }) (else_clause "else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" else (if_statement "if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" if (parenthesized_expression "(iVar7 < 0x114)" ( (binary_expression "iVar7 < 0x114" identifier < number_literal) )) (compound_statement "{\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" { (labeled_statement "LAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);" statement_identifier : (expression_statement "param_3[0xca] = (undefined *)(local_70[0] + -0xa223);" (assignment_expression "param_3[0xca] = (undefined *)(local_70[0] + -0xa223)" (subscript_expression "param_3[0xca]" identifier [ number_literal ]) = (cast_expression "(undefined *)(local_70[0] + -0xa223)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70[0] + -0xa223)" ( (binary_expression "local_70[0] + -0xa223" (subscript_expression "local_70[0]" identifier [ number_literal ]) + number_literal) )))) ;)) (goto_statement "goto LAB_000269bd;" goto statement_identifier ;) })))) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 != uVar5)" ( (binary_expression "uVar9 != uVar5" identifier != identifier) )) ;) (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;" 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_00026a37;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "cVar14 = '\0';" (assignment_expression "cVar14 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);" do (compound_statement "{\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    }" { (expression_statement "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);" (assignment_expression "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4)" identifier = (pointer_expression "*(int *)((int)param_3[0xa6] + uVar9 * 4)" * (cast_expression "(int *)((int)param_3[0xa6] + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3[0xa6] + uVar9 * 4)" ( (binary_expression "(int)param_3[0xa6] + uVar9 * 4" (cast_expression "(int)param_3[0xa6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa6]" identifier [ number_literal ])) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (expression_statement "cVar15 = *(char *)((int)param_3 + 0x331);" (assignment_expression "cVar15 = *(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 (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }" if (parenthesized_expression "(iVar7 != 0x112)" ( (binary_expression "iVar7 != 0x112" identifier != number_literal) )) (compound_statement "{\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }" { (if_statement "if (iVar7 == 0x113) goto LAB_00026a37;" if (parenthesized_expression "(iVar7 == 0x113)" ( (binary_expression "iVar7 == 0x113" identifier == number_literal) )) (goto_statement "goto LAB_00026a37;" goto statement_identifier ;)) (expression_statement "cVar15 = cVar14;" (assignment_expression "cVar15 = cVar14" identifier = identifier) ;) (if_statement "if (iVar7 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" if (parenthesized_expression "(iVar7 == 0x10a)" ( (binary_expression "iVar7 == 0x10a" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" { comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "cVar14 = cVar15;" (assignment_expression "cVar14 = cVar15" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 != uVar5)" ( (binary_expression "uVar9 != uVar5" identifier != identifier) )) ;) (if_statement "if (cVar15 == '\0') goto LAB_00026bd5;" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00026bd5;" goto statement_identifier ;)) }))) (expression_statement "free(param_3[0xb4]);" (call_expression "free(param_3[0xb4])" identifier (argument_list "(param_3[0xb4])" ( (subscript_expression "param_3[0xb4]" identifier [ number_literal ]) ))) ;) (expression_statement "free(param_3[0xa0]);" (call_expression "free(param_3[0xa0])" identifier (argument_list "(param_3[0xa0])" ( (subscript_expression "param_3[0xa0]" identifier [ number_literal ]) ))) ;) (expression_statement "free(param_3[0xc5]);" (call_expression "free(param_3[0xc5])" identifier (argument_list "(param_3[0xc5])" ( (subscript_expression "param_3[0xc5]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = (int)param_3[200];" (assignment_expression "iVar7 = (int)param_3[200]" identifier = (cast_expression "(int)param_3[200]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[200]" identifier [ number_literal ]))) ;) (if_statement "if (iVar7 != 0) {\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }" { (expression_statement "iVar8 = local_64;" (assignment_expression "iVar8 = local_64" identifier = identifier) ;) (if_statement "if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }" if (parenthesized_expression "(-1 < (int)param_3[0xbd])" ( (binary_expression "-1 < (int)param_3[0xbd]" number_literal < (cast_expression "(int)param_3[0xbd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xbd]" identifier [ number_literal ]))) )) (compound_statement "{\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }" { (do_statement "do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);" do (compound_statement "{\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      }" { (expression_statement "iVar13 = iVar8 + 1;" (assignment_expression "iVar13 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "free(*(void **)(iVar7 + iVar8 * 4));" (call_expression "free(*(void **)(iVar7 + iVar8 * 4))" identifier (argument_list "(*(void **)(iVar7 + iVar8 * 4))" ( (pointer_expression "*(void **)(iVar7 + iVar8 * 4)" * (cast_expression "(void **)(iVar7 + iVar8 * 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + iVar8 * 4)" ( (binary_expression "iVar7 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) ))) ;) (expression_statement "iVar7 = (int)param_3[200];" (assignment_expression "iVar7 = (int)param_3[200]" identifier = (cast_expression "(int)param_3[200]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[200]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = iVar13;" (assignment_expression "iVar8 = iVar13" identifier = identifier) ;) }) while (parenthesized_expression "(iVar13 < (int)param_3[0xbd])" ( (binary_expression "iVar13 < (int)param_3[0xbd]" identifier < (cast_expression "(int)param_3[0xbd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xbd]" identifier [ number_literal ]))) )) ;) })) (expression_statement "free((void *)(iVar7 + -8));" (call_expression "free((void *)(iVar7 + -8))" identifier (argument_list "((void *)(iVar7 + -8))" ( (cast_expression "(void *)(iVar7 + -8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -8)" ( (binary_expression "iVar7 + -8" identifier + number_literal) ))) ))) ;) })) (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 "*(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 "param_3[0xca] = (undefined *)local_50;" (assignment_expression "param_3[0xca] = (undefined *)local_50" (subscript_expression "param_3[0xca]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_50" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_00026a37:\n  FUN_00022280();" statement_identifier : (expression_statement "FUN_00022280();" (call_expression "FUN_00022280()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_000269bd:\n  if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }" statement_identifier : (if_statement "if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }" if (parenthesized_expression "(param_3[0xb5] != (undefined *)0x0)" ( (binary_expression "param_3[0xb5] != (undefined *)0x0" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\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_00022280();" (call_expression "FUN_00022280()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "FUN_00038830();" (call_expression "FUN_00038830()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */\n/* WARNING: Unknown calling convention */\n\nvoid dfacomp(char *s,size_t len,dfa *d,_Bool searchflag)\n\n{\n  int iVar1;\n  _Bool _Var2;\n  bool bVar3;\n  dfa *pdVar4;\n  token tVar5;\n  dfa *d_00;\n  size_t sVar6;\n  charclass *__dest;\n  token *ptVar7;\n  ptrdiff_t pVar8;\n  uint uVar9;\n  state_num **ppsVar10;\n  char *pcVar11;\n  int iVar12;\n  size_t sVar13;\n  uint uVar14;\n  char cVar15;\n  char cVar16;\n  dfa *pdVar17;\n  uint uVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  uint local_68;\n  token *local_60;\n  byte local_5a;\n  charclass ccl;\n  \n  bVar19 = 0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  (d->lex).laststart = true;\n  (d->lex).lasttok = -1;\n  (d->lex).ptr = s;\n  (d->lex).left = len;\n  _Var2 = (d->syntax).syntax_bits_set;\n  pdVar4 = (dfa *)(uint)_Var2;\n  if (_Var2 == false) {\n    pcVar11 = "no syntax specified";\nLAB_00026c24:\n    pcVar11 = (char *)dcgettext(0,pcVar11,5,pdVar4);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar11);\n  }\n  if (d->nregexps == 0) {\n    addtok(d,0x10b);\n  }\n  tVar5 = lex(d);\n  (d->parse).tok = tVar5;\n  (d->parse).depth = d->depth;\n  closure(d);\n  iVar12 = (d->parse).tok;\n  while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {\n    closure(d);\n    addtok(d,0x105);\n    iVar12 = (d->parse).tok;\n  }\n  while (iVar12 == 0x106) {\n    tVar5 = lex(d);\n    (d->parse).tok = tVar5;\n    closure(d);\n    iVar12 = (d->parse).tok;\n    while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {\n      closure(d);\n      addtok(d,0x105);\n      iVar12 = (d->parse).tok;\n    }\n    addtok(d,0x106);\n    iVar12 = (d->parse).tok;\n  }\n  if (iVar12 != -1) {\n    pcVar11 = "unbalanced )";\n    pdVar4 = d;\n    goto LAB_00026c24;\n  }\n  addtok(d,~d->nregexps);\n  addtok(d,0x105);\n  sVar6 = d->nregexps;\n  if (sVar6 != 0) {\n    addtok(d,0x106);\n    sVar6 = d->nregexps;\n  }\n  d->nregexps = sVar6 + 1;\n  d_00 = (dfa *)xmalloc(0x834);\n  pdVar4 = d;\n  pdVar17 = d_00;\n  for (iVar12 = 0x20d; iVar12 != 0; iVar12 = iVar12 + -1) {\n    (pdVar17->syntax).syntax_bits = (pdVar4->syntax).syntax_bits;\n    pdVar4 = (dfa *)((int)pdVar4 + (uint)bVar19 * -8 + 4);\n    pdVar17 = (dfa *)((int)pdVar17 + (uint)bVar19 * -8 + 4);\n  }\n  (d_00->localeinfo).multibyte = false;\n  d_00->multibyte_prop = (char *)0x0;\n  d_00->superset = (dfa *)0x0;\n  d_00->dfaexec = dfaexec_sb;\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  sVar6 = d_00->calloc << 5;\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  if (((int)sVar6 < 0) || ((uint)d_00->calloc >> 0x1b != 0)) {\nLAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  __dest = (charclass *)xmalloc(sVar6);\n  iVar12 = d->cindex;\n  d_00->charclasses = __dest;\n  if (iVar12 != 0) {\n    memcpy(__dest,d->charclasses,iVar12 << 5);\n  }\n  sVar6 = d->tindex << 3;\n  if (((int)sVar6 < 0) || (d->tindex >> 0x1d != 0)) goto LAB_00026c0e;\n  ptVar7 = (token *)xmalloc(sVar6);\n  d_00->tokens = ptVar7;\n  sVar6 = d->tindex;\n  d_00->talloc = sVar6 * 2;\n  if (sVar6 == 0) {\n    d_00->tindex = 0;\nLAB_00026a5d:\n    dfafree(d_00);\n    free(d_00);\n    uVar9 = d->tindex;\n  }\n  else {\n    local_60 = d->tokens;\n    local_5a = 0;\n    local_68 = 0;\n    bVar3 = false;\n    sVar6 = 0;\n    do {\n      uVar9 = local_68 + 1;\n      sVar13 = sVar6 + 1;\n      uVar14 = local_60[local_68];\n      if (uVar14 - 0x10a < 10) {\n        uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);\n        if ((uVar18 & 0x301) == 0) {\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }\n        else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }\n      }\n      else {\n        d_00->tokens[sVar6] = uVar14;\n        local_68 = uVar9;\n        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }\n      }\n      uVar9 = d->tindex;\n      sVar6 = sVar13;\n    } while (local_68 < uVar9);\n    d_00->tindex = sVar13;\n    if ((!bVar3) || ((local_5a == 0 && ((d->localeinfo).multibyte == false)))) goto LAB_00026a5d;\n    d->superset = d_00;\n  }\n  if (uVar9 == 0) {\n    if ((d->localeinfo).using_utf8 == false) goto LAB_00026a37;\nLAB_00026bd5:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      free(d->superset);\n      d->superset = (dfa *)0x0;\n    }\n  }\n  else {\n    uVar14 = 0;\n    do {\n      iVar12 = d->tokens[uVar14];\n      if (0x10d < iVar12) {\n        if (iVar12 < 0x112) {\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }\n        else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }\n      }\n      uVar14 = uVar14 + 1;\n    } while (uVar14 != uVar9);\n    _Var2 = (d->localeinfo).using_utf8;\n    if (_Var2 == false) goto LAB_00026a37;\n    uVar14 = 0;\n    cVar15 = '\0';\n    do {\n      iVar12 = d->tokens[uVar14];\n      cVar16 = _Var2;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00026a37;\n        cVar16 = cVar15;\n        if (iVar12 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar14 = uVar14 + 1;\n      cVar15 = cVar16;\n    } while (uVar14 != uVar9);\n    if (cVar16 == '\0') goto LAB_00026bd5;\n  }\n  free(d->multibyte_prop);\n  free((d->lex).brack.chars);\n  free((d->mb_follows).elems);\n  ppsVar10 = d->mb_trans;\n  if (ppsVar10 != (state_num **)0x0) {\n    if (-1 < d->tralloc) {\n      iVar12 = -1;\n      do {\n        ppsVar10 = ppsVar10 + iVar12;\n        iVar12 = iVar12 + 1;\n        free(*ppsVar10);\n        ppsVar10 = d->mb_trans;\n      } while (iVar12 < d->tralloc);\n    }\n    free(ppsVar10 + -2);\n  }\n  (d->localeinfo).multibyte = false;\n  d->fast = true;\n  d->dfaexec = dfaexec_sb;\nLAB_00026a37:\n  dfaanalyze(d,searchflag);\nLAB_000269bd:\n  if (d->superset != (dfa *)0x0) {\n    d->fast = true;\n    dfaanalyze(d->superset,searchflag);\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}\n\n" comment comment (function_definition "void dfacomp(char *s,size_t len,dfa *d,_Bool searchflag)\n\n{\n  int iVar1;\n  _Bool _Var2;\n  bool bVar3;\n  dfa *pdVar4;\n  token tVar5;\n  dfa *d_00;\n  size_t sVar6;\n  charclass *__dest;\n  token *ptVar7;\n  ptrdiff_t pVar8;\n  uint uVar9;\n  state_num **ppsVar10;\n  char *pcVar11;\n  int iVar12;\n  size_t sVar13;\n  uint uVar14;\n  char cVar15;\n  char cVar16;\n  dfa *pdVar17;\n  uint uVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  uint local_68;\n  token *local_60;\n  byte local_5a;\n  charclass ccl;\n  \n  bVar19 = 0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  (d->lex).laststart = true;\n  (d->lex).lasttok = -1;\n  (d->lex).ptr = s;\n  (d->lex).left = len;\n  _Var2 = (d->syntax).syntax_bits_set;\n  pdVar4 = (dfa *)(uint)_Var2;\n  if (_Var2 == false) {\n    pcVar11 = "no syntax specified";\nLAB_00026c24:\n    pcVar11 = (char *)dcgettext(0,pcVar11,5,pdVar4);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar11);\n  }\n  if (d->nregexps == 0) {\n    addtok(d,0x10b);\n  }\n  tVar5 = lex(d);\n  (d->parse).tok = tVar5;\n  (d->parse).depth = d->depth;\n  closure(d);\n  iVar12 = (d->parse).tok;\n  while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {\n    closure(d);\n    addtok(d,0x105);\n    iVar12 = (d->parse).tok;\n  }\n  while (iVar12 == 0x106) {\n    tVar5 = lex(d);\n    (d->parse).tok = tVar5;\n    closure(d);\n    iVar12 = (d->parse).tok;\n    while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {\n      closure(d);\n      addtok(d,0x105);\n      iVar12 = (d->parse).tok;\n    }\n    addtok(d,0x106);\n    iVar12 = (d->parse).tok;\n  }\n  if (iVar12 != -1) {\n    pcVar11 = "unbalanced )";\n    pdVar4 = d;\n    goto LAB_00026c24;\n  }\n  addtok(d,~d->nregexps);\n  addtok(d,0x105);\n  sVar6 = d->nregexps;\n  if (sVar6 != 0) {\n    addtok(d,0x106);\n    sVar6 = d->nregexps;\n  }\n  d->nregexps = sVar6 + 1;\n  d_00 = (dfa *)xmalloc(0x834);\n  pdVar4 = d;\n  pdVar17 = d_00;\n  for (iVar12 = 0x20d; iVar12 != 0; iVar12 = iVar12 + -1) {\n    (pdVar17->syntax).syntax_bits = (pdVar4->syntax).syntax_bits;\n    pdVar4 = (dfa *)((int)pdVar4 + (uint)bVar19 * -8 + 4);\n    pdVar17 = (dfa *)((int)pdVar17 + (uint)bVar19 * -8 + 4);\n  }\n  (d_00->localeinfo).multibyte = false;\n  d_00->multibyte_prop = (char *)0x0;\n  d_00->superset = (dfa *)0x0;\n  d_00->dfaexec = dfaexec_sb;\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  sVar6 = d_00->calloc << 5;\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  if (((int)sVar6 < 0) || ((uint)d_00->calloc >> 0x1b != 0)) {\nLAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  __dest = (charclass *)xmalloc(sVar6);\n  iVar12 = d->cindex;\n  d_00->charclasses = __dest;\n  if (iVar12 != 0) {\n    memcpy(__dest,d->charclasses,iVar12 << 5);\n  }\n  sVar6 = d->tindex << 3;\n  if (((int)sVar6 < 0) || (d->tindex >> 0x1d != 0)) goto LAB_00026c0e;\n  ptVar7 = (token *)xmalloc(sVar6);\n  d_00->tokens = ptVar7;\n  sVar6 = d->tindex;\n  d_00->talloc = sVar6 * 2;\n  if (sVar6 == 0) {\n    d_00->tindex = 0;\nLAB_00026a5d:\n    dfafree(d_00);\n    free(d_00);\n    uVar9 = d->tindex;\n  }\n  else {\n    local_60 = d->tokens;\n    local_5a = 0;\n    local_68 = 0;\n    bVar3 = false;\n    sVar6 = 0;\n    do {\n      uVar9 = local_68 + 1;\n      sVar13 = sVar6 + 1;\n      uVar14 = local_60[local_68];\n      if (uVar14 - 0x10a < 10) {\n        uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);\n        if ((uVar18 & 0x301) == 0) {\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }\n        else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }\n      }\n      else {\n        d_00->tokens[sVar6] = uVar14;\n        local_68 = uVar9;\n        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }\n      }\n      uVar9 = d->tindex;\n      sVar6 = sVar13;\n    } while (local_68 < uVar9);\n    d_00->tindex = sVar13;\n    if ((!bVar3) || ((local_5a == 0 && ((d->localeinfo).multibyte == false)))) goto LAB_00026a5d;\n    d->superset = d_00;\n  }\n  if (uVar9 == 0) {\n    if ((d->localeinfo).using_utf8 == false) goto LAB_00026a37;\nLAB_00026bd5:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      free(d->superset);\n      d->superset = (dfa *)0x0;\n    }\n  }\n  else {\n    uVar14 = 0;\n    do {\n      iVar12 = d->tokens[uVar14];\n      if (0x10d < iVar12) {\n        if (iVar12 < 0x112) {\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }\n        else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }\n      }\n      uVar14 = uVar14 + 1;\n    } while (uVar14 != uVar9);\n    _Var2 = (d->localeinfo).using_utf8;\n    if (_Var2 == false) goto LAB_00026a37;\n    uVar14 = 0;\n    cVar15 = '\0';\n    do {\n      iVar12 = d->tokens[uVar14];\n      cVar16 = _Var2;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00026a37;\n        cVar16 = cVar15;\n        if (iVar12 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar14 = uVar14 + 1;\n      cVar15 = cVar16;\n    } while (uVar14 != uVar9);\n    if (cVar16 == '\0') goto LAB_00026bd5;\n  }\n  free(d->multibyte_prop);\n  free((d->lex).brack.chars);\n  free((d->mb_follows).elems);\n  ppsVar10 = d->mb_trans;\n  if (ppsVar10 != (state_num **)0x0) {\n    if (-1 < d->tralloc) {\n      iVar12 = -1;\n      do {\n        ppsVar10 = ppsVar10 + iVar12;\n        iVar12 = iVar12 + 1;\n        free(*ppsVar10);\n        ppsVar10 = d->mb_trans;\n      } while (iVar12 < d->tralloc);\n    }\n    free(ppsVar10 + -2);\n  }\n  (d->localeinfo).multibyte = false;\n  d->fast = true;\n  d->dfaexec = dfaexec_sb;\nLAB_00026a37:\n  dfaanalyze(d,searchflag);\nLAB_000269bd:\n  if (d->superset != (dfa *)0x0) {\n    d->fast = true;\n    dfaanalyze(d->superset,searchflag);\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\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  int iVar1;\n  _Bool _Var2;\n  bool bVar3;\n  dfa *pdVar4;\n  token tVar5;\n  dfa *d_00;\n  size_t sVar6;\n  charclass *__dest;\n  token *ptVar7;\n  ptrdiff_t pVar8;\n  uint uVar9;\n  state_num **ppsVar10;\n  char *pcVar11;\n  int iVar12;\n  size_t sVar13;\n  uint uVar14;\n  char cVar15;\n  char cVar16;\n  dfa *pdVar17;\n  uint uVar18;\n  int in_GS_OFFSET;\n  byte bVar19;\n  uint local_68;\n  token *local_60;\n  byte local_5a;\n  charclass ccl;\n  \n  bVar19 = 0;\n  iVar1 = *(int *)(in_GS_OFFSET + 0x14);\n  (d->lex).laststart = true;\n  (d->lex).lasttok = -1;\n  (d->lex).ptr = s;\n  (d->lex).left = len;\n  _Var2 = (d->syntax).syntax_bits_set;\n  pdVar4 = (dfa *)(uint)_Var2;\n  if (_Var2 == false) {\n    pcVar11 = "no syntax specified";\nLAB_00026c24:\n    pcVar11 = (char *)dcgettext(0,pcVar11,5,pdVar4);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar11);\n  }\n  if (d->nregexps == 0) {\n    addtok(d,0x10b);\n  }\n  tVar5 = lex(d);\n  (d->parse).tok = tVar5;\n  (d->parse).depth = d->depth;\n  closure(d);\n  iVar12 = (d->parse).tok;\n  while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {\n    closure(d);\n    addtok(d,0x105);\n    iVar12 = (d->parse).tok;\n  }\n  while (iVar12 == 0x106) {\n    tVar5 = lex(d);\n    (d->parse).tok = tVar5;\n    closure(d);\n    iVar12 = (d->parse).tok;\n    while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {\n      closure(d);\n      addtok(d,0x105);\n      iVar12 = (d->parse).tok;\n    }\n    addtok(d,0x106);\n    iVar12 = (d->parse).tok;\n  }\n  if (iVar12 != -1) {\n    pcVar11 = "unbalanced )";\n    pdVar4 = d;\n    goto LAB_00026c24;\n  }\n  addtok(d,~d->nregexps);\n  addtok(d,0x105);\n  sVar6 = d->nregexps;\n  if (sVar6 != 0) {\n    addtok(d,0x106);\n    sVar6 = d->nregexps;\n  }\n  d->nregexps = sVar6 + 1;\n  d_00 = (dfa *)xmalloc(0x834);\n  pdVar4 = d;\n  pdVar17 = d_00;\n  for (iVar12 = 0x20d; iVar12 != 0; iVar12 = iVar12 + -1) {\n    (pdVar17->syntax).syntax_bits = (pdVar4->syntax).syntax_bits;\n    pdVar4 = (dfa *)((int)pdVar4 + (uint)bVar19 * -8 + 4);\n    pdVar17 = (dfa *)((int)pdVar17 + (uint)bVar19 * -8 + 4);\n  }\n  (d_00->localeinfo).multibyte = false;\n  d_00->multibyte_prop = (char *)0x0;\n  d_00->superset = (dfa *)0x0;\n  d_00->dfaexec = dfaexec_sb;\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  sVar6 = d_00->calloc << 5;\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  if (((int)sVar6 < 0) || ((uint)d_00->calloc >> 0x1b != 0)) {\nLAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }\n  __dest = (charclass *)xmalloc(sVar6);\n  iVar12 = d->cindex;\n  d_00->charclasses = __dest;\n  if (iVar12 != 0) {\n    memcpy(__dest,d->charclasses,iVar12 << 5);\n  }\n  sVar6 = d->tindex << 3;\n  if (((int)sVar6 < 0) || (d->tindex >> 0x1d != 0)) goto LAB_00026c0e;\n  ptVar7 = (token *)xmalloc(sVar6);\n  d_00->tokens = ptVar7;\n  sVar6 = d->tindex;\n  d_00->talloc = sVar6 * 2;\n  if (sVar6 == 0) {\n    d_00->tindex = 0;\nLAB_00026a5d:\n    dfafree(d_00);\n    free(d_00);\n    uVar9 = d->tindex;\n  }\n  else {\n    local_60 = d->tokens;\n    local_5a = 0;\n    local_68 = 0;\n    bVar3 = false;\n    sVar6 = 0;\n    do {\n      uVar9 = local_68 + 1;\n      sVar13 = sVar6 + 1;\n      uVar14 = local_60[local_68];\n      if (uVar14 - 0x10a < 10) {\n        uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);\n        if ((uVar18 & 0x301) == 0) {\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }\n        else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }\n      }\n      else {\n        d_00->tokens[sVar6] = uVar14;\n        local_68 = uVar9;\n        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }\n      }\n      uVar9 = d->tindex;\n      sVar6 = sVar13;\n    } while (local_68 < uVar9);\n    d_00->tindex = sVar13;\n    if ((!bVar3) || ((local_5a == 0 && ((d->localeinfo).multibyte == false)))) goto LAB_00026a5d;\n    d->superset = d_00;\n  }\n  if (uVar9 == 0) {\n    if ((d->localeinfo).using_utf8 == false) goto LAB_00026a37;\nLAB_00026bd5:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      free(d->superset);\n      d->superset = (dfa *)0x0;\n    }\n  }\n  else {\n    uVar14 = 0;\n    do {\n      iVar12 = d->tokens[uVar14];\n      if (0x10d < iVar12) {\n        if (iVar12 < 0x112) {\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }\n        else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }\n      }\n      uVar14 = uVar14 + 1;\n    } while (uVar14 != uVar9);\n    _Var2 = (d->localeinfo).using_utf8;\n    if (_Var2 == false) goto LAB_00026a37;\n    uVar14 = 0;\n    cVar15 = '\0';\n    do {\n      iVar12 = d->tokens[uVar14];\n      cVar16 = _Var2;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00026a37;\n        cVar16 = cVar15;\n        if (iVar12 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar14 = uVar14 + 1;\n      cVar15 = cVar16;\n    } while (uVar14 != uVar9);\n    if (cVar16 == '\0') goto LAB_00026bd5;\n  }\n  free(d->multibyte_prop);\n  free((d->lex).brack.chars);\n  free((d->mb_follows).elems);\n  ppsVar10 = d->mb_trans;\n  if (ppsVar10 != (state_num **)0x0) {\n    if (-1 < d->tralloc) {\n      iVar12 = -1;\n      do {\n        ppsVar10 = ppsVar10 + iVar12;\n        iVar12 = iVar12 + 1;\n        free(*ppsVar10);\n        ppsVar10 = d->mb_trans;\n      } while (iVar12 < d->tralloc);\n    }\n    free(ppsVar10 + -2);\n  }\n  (d->localeinfo).multibyte = false;\n  d->fast = true;\n  d->dfaexec = dfaexec_sb;\nLAB_00026a37:\n  dfaanalyze(d,searchflag);\nLAB_000269bd:\n  if (d->superset != (dfa *)0x0) {\n    d->fast = true;\n    dfaanalyze(d->superset,searchflag);\n  }\n  if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    /* WARNING: Subroutine does not return */\n  __stack_chk_fail_local();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "_Bool _Var2;" type_identifier identifier ;) (declaration "bool bVar3;" primitive_type identifier ;) (declaration "dfa *pdVar4;" type_identifier (pointer_declarator "*pdVar4" * identifier) ;) (declaration "token tVar5;" type_identifier identifier ;) (declaration "dfa *d_00;" type_identifier (pointer_declarator "*d_00" * identifier) ;) (declaration "size_t sVar6;" primitive_type identifier ;) (declaration "charclass *__dest;" type_identifier (pointer_declarator "*__dest" * identifier) ;) (declaration "token *ptVar7;" type_identifier (pointer_declarator "*ptVar7" * identifier) ;) (declaration "ptrdiff_t pVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "state_num **ppsVar10;" type_identifier (pointer_declarator "**ppsVar10" * (pointer_declarator "*ppsVar10" * identifier)) ;) (declaration "char *pcVar11;" primitive_type (pointer_declarator "*pcVar11" * identifier) ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "size_t sVar13;" primitive_type identifier ;) (declaration "uint uVar14;" type_identifier identifier ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "char cVar16;" primitive_type identifier ;) (declaration "dfa *pdVar17;" type_identifier (pointer_declarator "*pdVar17" * identifier) ;) (declaration "uint uVar18;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar19;" type_identifier identifier ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "token *local_60;" type_identifier (pointer_declarator "*local_60" * identifier) ;) (declaration "byte local_5a;" type_identifier identifier ;) (declaration "charclass ccl;" type_identifier identifier ;) (expression_statement "bVar19 = 0;" (assignment_expression "bVar19 = 0" identifier = number_literal) ;) (expression_statement "iVar1 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "iVar1 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" 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 "(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).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 "_Var2 = (d->syntax).syntax_bits_set;" (assignment_expression "_Var2 = (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)) ;) (expression_statement "pdVar4 = (dfa *)(uint)_Var2;" (assignment_expression "pdVar4 = (dfa *)(uint)_Var2" identifier = (cast_expression "(dfa *)(uint)_Var2" ( (type_descriptor "dfa *" type_identifier (abstract_pointer_declarator "*" *)) ) (cast_expression "(uint)_Var2" ( (type_descriptor "uint" type_identifier) ) identifier))) ;) (if_statement "if (_Var2 == false) {\n    pcVar11 = "no syntax specified";\nLAB_00026c24:\n    pcVar11 = (char *)dcgettext(0,pcVar11,5,pdVar4);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar11);\n  }" if (parenthesized_expression "(_Var2 == false)" ( (binary_expression "_Var2 == false" identifier == false) )) (compound_statement "{\n    pcVar11 = "no syntax specified";\nLAB_00026c24:\n    pcVar11 = (char *)dcgettext(0,pcVar11,5,pdVar4);\n                    /* WARNING: Subroutine does not return */\n    dfaerror(pcVar11);\n  }" { (expression_statement "pcVar11 = "no syntax specified";" (assignment_expression "pcVar11 = "no syntax specified"" identifier = (string_literal ""no syntax specified"" " string_content ")) ;) (labeled_statement "LAB_00026c24:\n    pcVar11 = (char *)dcgettext(0,pcVar11,5,pdVar4);" statement_identifier : (expression_statement "pcVar11 = (char *)dcgettext(0,pcVar11,5,pdVar4);" (assignment_expression "pcVar11 = (char *)dcgettext(0,pcVar11,5,pdVar4)" identifier = (cast_expression "(char *)dcgettext(0,pcVar11,5,pdVar4)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "dcgettext(0,pcVar11,5,pdVar4)" identifier (argument_list "(0,pcVar11,5,pdVar4)" ( number_literal , identifier , number_literal , identifier ))))) ;)) comment (expression_statement "dfaerror(pcVar11);" (call_expression "dfaerror(pcVar11)" identifier (argument_list "(pcVar11)" ( 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 "tVar5 = lex(d);" (assignment_expression "tVar5 = lex(d)" identifier = (call_expression "lex(d)" identifier (argument_list "(d)" ( identifier )))) ;) (expression_statement "(d->parse).tok = tVar5;" (assignment_expression "(d->parse).tok = tVar5" (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 "closure(d);" (call_expression "closure(d)" identifier (argument_list "(d)" ( identifier ))) ;) (expression_statement "iVar12 = (d->parse).tok;" (assignment_expression "iVar12 = (d->parse).tok" identifier = (field_expression "(d->parse).tok" (parenthesized_expression "(d->parse)" ( (field_expression "d->parse" identifier -> field_identifier) )) . field_identifier)) ;) (while_statement "while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {\n    closure(d);\n    addtok(d,0x105);\n    iVar12 = (d->parse).tok;\n  }" while (parenthesized_expression "(((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12)))" ( (parenthesized_expression "((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))" ( (binary_expression "(iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12)" (binary_expression "(iVar12 - 0x106U & 0xfffffffd) != 0" (parenthesized_expression "(iVar12 - 0x106U & 0xfffffffd)" ( (binary_expression "iVar12 - 0x106U & 0xfffffffd" (binary_expression "iVar12 - 0x106U" identifier - number_literal) & number_literal) )) != number_literal) && (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) ))) )) )) (compound_statement "{\n    closure(d);\n    addtok(d,0x105);\n    iVar12 = (d->parse).tok;\n  }" { (expression_statement "closure(d);" (call_expression "closure(d)" identifier (argument_list "(d)" ( identifier ))) ;) (expression_statement "addtok(d,0x105);" (call_expression "addtok(d,0x105)" identifier (argument_list "(d,0x105)" ( identifier , number_literal ))) ;) (expression_statement "iVar12 = (d->parse).tok;" (assignment_expression "iVar12 = (d->parse).tok" identifier = (field_expression "(d->parse).tok" (parenthesized_expression "(d->parse)" ( (field_expression "d->parse" identifier -> field_identifier) )) . field_identifier)) ;) })) (while_statement "while (iVar12 == 0x106) {\n    tVar5 = lex(d);\n    (d->parse).tok = tVar5;\n    closure(d);\n    iVar12 = (d->parse).tok;\n    while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {\n      closure(d);\n      addtok(d,0x105);\n      iVar12 = (d->parse).tok;\n    }\n    addtok(d,0x106);\n    iVar12 = (d->parse).tok;\n  }" while (parenthesized_expression "(iVar12 == 0x106)" ( (binary_expression "iVar12 == 0x106" identifier == number_literal) )) (compound_statement "{\n    tVar5 = lex(d);\n    (d->parse).tok = tVar5;\n    closure(d);\n    iVar12 = (d->parse).tok;\n    while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {\n      closure(d);\n      addtok(d,0x105);\n      iVar12 = (d->parse).tok;\n    }\n    addtok(d,0x106);\n    iVar12 = (d->parse).tok;\n  }" { (expression_statement "tVar5 = lex(d);" (assignment_expression "tVar5 = lex(d)" identifier = (call_expression "lex(d)" identifier (argument_list "(d)" ( identifier )))) ;) (expression_statement "(d->parse).tok = tVar5;" (assignment_expression "(d->parse).tok = tVar5" (field_expression "(d->parse).tok" (parenthesized_expression "(d->parse)" ( (field_expression "d->parse" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "closure(d);" (call_expression "closure(d)" identifier (argument_list "(d)" ( identifier ))) ;) (expression_statement "iVar12 = (d->parse).tok;" (assignment_expression "iVar12 = (d->parse).tok" identifier = (field_expression "(d->parse).tok" (parenthesized_expression "(d->parse)" ( (field_expression "d->parse" identifier -> field_identifier) )) . field_identifier)) ;) (while_statement "while (((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))) {\n      closure(d);\n      addtok(d,0x105);\n      iVar12 = (d->parse).tok;\n    }" while (parenthesized_expression "(((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12)))" ( (parenthesized_expression "((iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12))" ( (binary_expression "(iVar12 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar12)" (binary_expression "(iVar12 - 0x106U & 0xfffffffd) != 0" (parenthesized_expression "(iVar12 - 0x106U & 0xfffffffd)" ( (binary_expression "iVar12 - 0x106U & 0xfffffffd" (binary_expression "iVar12 - 0x106U" identifier - number_literal) & number_literal) )) != number_literal) && (parenthesized_expression "(-1 < iVar12)" ( (binary_expression "-1 < iVar12" number_literal < identifier) ))) )) )) (compound_statement "{\n      closure(d);\n      addtok(d,0x105);\n      iVar12 = (d->parse).tok;\n    }" { (expression_statement "closure(d);" (call_expression "closure(d)" identifier (argument_list "(d)" ( identifier ))) ;) (expression_statement "addtok(d,0x105);" (call_expression "addtok(d,0x105)" identifier (argument_list "(d,0x105)" ( identifier , number_literal ))) ;) (expression_statement "iVar12 = (d->parse).tok;" (assignment_expression "iVar12 = (d->parse).tok" identifier = (field_expression "(d->parse).tok" (parenthesized_expression "(d->parse)" ( (field_expression "d->parse" identifier -> field_identifier) )) . field_identifier)) ;) })) (expression_statement "addtok(d,0x106);" (call_expression "addtok(d,0x106)" identifier (argument_list "(d,0x106)" ( identifier , number_literal ))) ;) (expression_statement "iVar12 = (d->parse).tok;" (assignment_expression "iVar12 = (d->parse).tok" identifier = (field_expression "(d->parse).tok" (parenthesized_expression "(d->parse)" ( (field_expression "d->parse" identifier -> field_identifier) )) . field_identifier)) ;) })) (if_statement "if (iVar12 != -1) {\n    pcVar11 = "unbalanced )";\n    pdVar4 = d;\n    goto LAB_00026c24;\n  }" if (parenthesized_expression "(iVar12 != -1)" ( (binary_expression "iVar12 != -1" identifier != number_literal) )) (compound_statement "{\n    pcVar11 = "unbalanced )";\n    pdVar4 = d;\n    goto LAB_00026c24;\n  }" { (expression_statement "pcVar11 = "unbalanced )";" (assignment_expression "pcVar11 = "unbalanced )"" identifier = (string_literal ""unbalanced )"" " string_content ")) ;) (expression_statement "pdVar4 = d;" (assignment_expression "pdVar4 = d" identifier = identifier) ;) (goto_statement "goto LAB_00026c24;" goto statement_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 "sVar6 = d->nregexps;" (assignment_expression "sVar6 = d->nregexps" identifier = (field_expression "d->nregexps" identifier -> field_identifier)) ;) (if_statement "if (sVar6 != 0) {\n    addtok(d,0x106);\n    sVar6 = d->nregexps;\n  }" if (parenthesized_expression "(sVar6 != 0)" ( (binary_expression "sVar6 != 0" identifier != number_literal) )) (compound_statement "{\n    addtok(d,0x106);\n    sVar6 = d->nregexps;\n  }" { (expression_statement "addtok(d,0x106);" (call_expression "addtok(d,0x106)" identifier (argument_list "(d,0x106)" ( identifier , number_literal ))) ;) (expression_statement "sVar6 = d->nregexps;" (assignment_expression "sVar6 = d->nregexps" identifier = (field_expression "d->nregexps" identifier -> field_identifier)) ;) })) (expression_statement "d->nregexps = sVar6 + 1;" (assignment_expression "d->nregexps = sVar6 + 1" (field_expression "d->nregexps" identifier -> field_identifier) = (binary_expression "sVar6 + 1" identifier + number_literal)) ;) (expression_statement "d_00 = (dfa *)xmalloc(0x834);" (assignment_expression "d_00 = (dfa *)xmalloc(0x834)" identifier = (cast_expression "(dfa *)xmalloc(0x834)" ( (type_descriptor "dfa *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(0x834)" identifier (argument_list "(0x834)" ( number_literal ))))) ;) (expression_statement "pdVar4 = d;" (assignment_expression "pdVar4 = d" identifier = identifier) ;) (expression_statement "pdVar17 = d_00;" (assignment_expression "pdVar17 = d_00" identifier = identifier) ;) (for_statement "for (iVar12 = 0x20d; iVar12 != 0; iVar12 = iVar12 + -1) {\n    (pdVar17->syntax).syntax_bits = (pdVar4->syntax).syntax_bits;\n    pdVar4 = (dfa *)((int)pdVar4 + (uint)bVar19 * -8 + 4);\n    pdVar17 = (dfa *)((int)pdVar17 + (uint)bVar19 * -8 + 4);\n  }" for ( (assignment_expression "iVar12 = 0x20d" identifier = number_literal) ; (binary_expression "iVar12 != 0" identifier != number_literal) ; (assignment_expression "iVar12 = iVar12 + -1" identifier = (binary_expression "iVar12 + -1" identifier + number_literal)) ) (compound_statement "{\n    (pdVar17->syntax).syntax_bits = (pdVar4->syntax).syntax_bits;\n    pdVar4 = (dfa *)((int)pdVar4 + (uint)bVar19 * -8 + 4);\n    pdVar17 = (dfa *)((int)pdVar17 + (uint)bVar19 * -8 + 4);\n  }" { (expression_statement "(pdVar17->syntax).syntax_bits = (pdVar4->syntax).syntax_bits;" (assignment_expression "(pdVar17->syntax).syntax_bits = (pdVar4->syntax).syntax_bits" (field_expression "(pdVar17->syntax).syntax_bits" (parenthesized_expression "(pdVar17->syntax)" ( (field_expression "pdVar17->syntax" identifier -> field_identifier) )) . field_identifier) = (field_expression "(pdVar4->syntax).syntax_bits" (parenthesized_expression "(pdVar4->syntax)" ( (field_expression "pdVar4->syntax" identifier -> field_identifier) )) . field_identifier)) ;) (expression_statement "pdVar4 = (dfa *)((int)pdVar4 + (uint)bVar19 * -8 + 4);" (assignment_expression "pdVar4 = (dfa *)((int)pdVar4 + (uint)bVar19 * -8 + 4)" identifier = (cast_expression "(dfa *)((int)pdVar4 + (uint)bVar19 * -8 + 4)" ( (type_descriptor "dfa *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar4 + (uint)bVar19 * -8 + 4)" ( (binary_expression "(int)pdVar4 + (uint)bVar19 * -8 + 4" (binary_expression "(int)pdVar4 + (uint)bVar19 * -8" (cast_expression "(int)pdVar4" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -8" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) (expression_statement "pdVar17 = (dfa *)((int)pdVar17 + (uint)bVar19 * -8 + 4);" (assignment_expression "pdVar17 = (dfa *)((int)pdVar17 + (uint)bVar19 * -8 + 4)" identifier = (cast_expression "(dfa *)((int)pdVar17 + (uint)bVar19 * -8 + 4)" ( (type_descriptor "dfa *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)pdVar17 + (uint)bVar19 * -8 + 4)" ( (binary_expression "(int)pdVar17 + (uint)bVar19 * -8 + 4" (binary_expression "(int)pdVar17 + (uint)bVar19 * -8" (cast_expression "(int)pdVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (binary_expression "(uint)bVar19 * -8" (cast_expression "(uint)bVar19" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal) )))) ;) })) (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->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->dfaexec = dfaexec_sb;" (assignment_expression "d_00->dfaexec = dfaexec_sb" (field_expression "d_00->dfaexec" identifier -> field_identifier) = identifier) ;) (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 "sVar6 = d_00->calloc << 5;" (assignment_expression "sVar6 = d_00->calloc << 5" identifier = (binary_expression "d_00->calloc << 5" (field_expression "d_00->calloc" 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)) ;) (if_statement "if (((int)sVar6 < 0) || ((uint)d_00->calloc >> 0x1b != 0)) {\nLAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" if (parenthesized_expression "(((int)sVar6 < 0) || ((uint)d_00->calloc >> 0x1b != 0))" ( (binary_expression "((int)sVar6 < 0) || ((uint)d_00->calloc >> 0x1b != 0)" (parenthesized_expression "((int)sVar6 < 0)" ( (binary_expression "(int)sVar6 < 0" (cast_expression "(int)sVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "((uint)d_00->calloc >> 0x1b != 0)" ( (binary_expression "(uint)d_00->calloc >> 0x1b != 0" (binary_expression "(uint)d_00->calloc >> 0x1b" (cast_expression "(uint)d_00->calloc" ( (type_descriptor "uint" type_identifier) ) (field_expression "d_00->calloc" identifier -> field_identifier)) >> number_literal) != number_literal) ))) )) (compound_statement "{\nLAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();\n  }" { (labeled_statement "LAB_00026c0e:\n                    /* WARNING: Subroutine does not return */\n    xalloc_die();" statement_identifier : comment (expression_statement "xalloc_die();" (call_expression "xalloc_die()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "__dest = (charclass *)xmalloc(sVar6);" (assignment_expression "__dest = (charclass *)xmalloc(sVar6)" identifier = (cast_expression "(charclass *)xmalloc(sVar6)" ( (type_descriptor "charclass *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar6)" identifier (argument_list "(sVar6)" ( identifier ))))) ;) (expression_statement "iVar12 = d->cindex;" (assignment_expression "iVar12 = d->cindex" identifier = (field_expression "d->cindex" identifier -> field_identifier)) ;) (expression_statement "d_00->charclasses = __dest;" (assignment_expression "d_00->charclasses = __dest" (field_expression "d_00->charclasses" identifier -> field_identifier) = identifier) ;) (if_statement "if (iVar12 != 0) {\n    memcpy(__dest,d->charclasses,iVar12 << 5);\n  }" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (compound_statement "{\n    memcpy(__dest,d->charclasses,iVar12 << 5);\n  }" { (expression_statement "memcpy(__dest,d->charclasses,iVar12 << 5);" (call_expression "memcpy(__dest,d->charclasses,iVar12 << 5)" identifier (argument_list "(__dest,d->charclasses,iVar12 << 5)" ( identifier , (field_expression "d->charclasses" identifier -> field_identifier) , (binary_expression "iVar12 << 5" identifier << number_literal) ))) ;) })) (expression_statement "sVar6 = d->tindex << 3;" (assignment_expression "sVar6 = d->tindex << 3" identifier = (binary_expression "d->tindex << 3" (field_expression "d->tindex" identifier -> field_identifier) << number_literal)) ;) (if_statement "if (((int)sVar6 < 0) || (d->tindex >> 0x1d != 0)) goto LAB_00026c0e;" if (parenthesized_expression "(((int)sVar6 < 0) || (d->tindex >> 0x1d != 0))" ( (binary_expression "((int)sVar6 < 0) || (d->tindex >> 0x1d != 0)" (parenthesized_expression "((int)sVar6 < 0)" ( (binary_expression "(int)sVar6 < 0" (cast_expression "(int)sVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) || (parenthesized_expression "(d->tindex >> 0x1d != 0)" ( (binary_expression "d->tindex >> 0x1d != 0" (binary_expression "d->tindex >> 0x1d" (field_expression "d->tindex" identifier -> field_identifier) >> number_literal) != number_literal) ))) )) (goto_statement "goto LAB_00026c0e;" goto statement_identifier ;)) (expression_statement "ptVar7 = (token *)xmalloc(sVar6);" (assignment_expression "ptVar7 = (token *)xmalloc(sVar6)" identifier = (cast_expression "(token *)xmalloc(sVar6)" ( (type_descriptor "token *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "xmalloc(sVar6)" identifier (argument_list "(sVar6)" ( identifier ))))) ;) (expression_statement "d_00->tokens = ptVar7;" (assignment_expression "d_00->tokens = ptVar7" (field_expression "d_00->tokens" identifier -> field_identifier) = identifier) ;) (expression_statement "sVar6 = d->tindex;" (assignment_expression "sVar6 = d->tindex" identifier = (field_expression "d->tindex" identifier -> field_identifier)) ;) (expression_statement "d_00->talloc = sVar6 * 2;" (assignment_expression "d_00->talloc = sVar6 * 2" (field_expression "d_00->talloc" identifier -> field_identifier) = (binary_expression "sVar6 * 2" identifier * number_literal)) ;) (if_statement "if (sVar6 == 0) {\n    d_00->tindex = 0;\nLAB_00026a5d:\n    dfafree(d_00);\n    free(d_00);\n    uVar9 = d->tindex;\n  }\n  else {\n    local_60 = d->tokens;\n    local_5a = 0;\n    local_68 = 0;\n    bVar3 = false;\n    sVar6 = 0;\n    do {\n      uVar9 = local_68 + 1;\n      sVar13 = sVar6 + 1;\n      uVar14 = local_60[local_68];\n      if (uVar14 - 0x10a < 10) {\n        uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);\n        if ((uVar18 & 0x301) == 0) {\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }\n        else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }\n      }\n      else {\n        d_00->tokens[sVar6] = uVar14;\n        local_68 = uVar9;\n        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }\n      }\n      uVar9 = d->tindex;\n      sVar6 = sVar13;\n    } while (local_68 < uVar9);\n    d_00->tindex = sVar13;\n    if ((!bVar3) || ((local_5a == 0 && ((d->localeinfo).multibyte == false)))) goto LAB_00026a5d;\n    d->superset = d_00;\n  }" if (parenthesized_expression "(sVar6 == 0)" ( (binary_expression "sVar6 == 0" identifier == number_literal) )) (compound_statement "{\n    d_00->tindex = 0;\nLAB_00026a5d:\n    dfafree(d_00);\n    free(d_00);\n    uVar9 = 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_00026a5d:\n    dfafree(d_00);" statement_identifier : (expression_statement "dfafree(d_00);" (call_expression "dfafree(d_00)" identifier (argument_list "(d_00)" ( identifier ))) ;)) (expression_statement "free(d_00);" (call_expression "free(d_00)" identifier (argument_list "(d_00)" ( identifier ))) ;) (expression_statement "uVar9 = d->tindex;" (assignment_expression "uVar9 = d->tindex" identifier = (field_expression "d->tindex" identifier -> field_identifier)) ;) }) (else_clause "else {\n    local_60 = d->tokens;\n    local_5a = 0;\n    local_68 = 0;\n    bVar3 = false;\n    sVar6 = 0;\n    do {\n      uVar9 = local_68 + 1;\n      sVar13 = sVar6 + 1;\n      uVar14 = local_60[local_68];\n      if (uVar14 - 0x10a < 10) {\n        uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);\n        if ((uVar18 & 0x301) == 0) {\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }\n        else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }\n      }\n      else {\n        d_00->tokens[sVar6] = uVar14;\n        local_68 = uVar9;\n        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }\n      }\n      uVar9 = d->tindex;\n      sVar6 = sVar13;\n    } while (local_68 < uVar9);\n    d_00->tindex = sVar13;\n    if ((!bVar3) || ((local_5a == 0 && ((d->localeinfo).multibyte == false)))) goto LAB_00026a5d;\n    d->superset = d_00;\n  }" else (compound_statement "{\n    local_60 = d->tokens;\n    local_5a = 0;\n    local_68 = 0;\n    bVar3 = false;\n    sVar6 = 0;\n    do {\n      uVar9 = local_68 + 1;\n      sVar13 = sVar6 + 1;\n      uVar14 = local_60[local_68];\n      if (uVar14 - 0x10a < 10) {\n        uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);\n        if ((uVar18 & 0x301) == 0) {\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }\n        else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }\n      }\n      else {\n        d_00->tokens[sVar6] = uVar14;\n        local_68 = uVar9;\n        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }\n      }\n      uVar9 = d->tindex;\n      sVar6 = sVar13;\n    } while (local_68 < uVar9);\n    d_00->tindex = sVar13;\n    if ((!bVar3) || ((local_5a == 0 && ((d->localeinfo).multibyte == false)))) goto LAB_00026a5d;\n    d->superset = d_00;\n  }" { (expression_statement "local_60 = d->tokens;" (assignment_expression "local_60 = d->tokens" identifier = (field_expression "d->tokens" identifier -> field_identifier)) ;) (expression_statement "local_5a = 0;" (assignment_expression "local_5a = 0" identifier = number_literal) ;) (expression_statement "local_68 = 0;" (assignment_expression "local_68 = 0" identifier = number_literal) ;) (expression_statement "bVar3 = false;" (assignment_expression "bVar3 = false" identifier = false) ;) (expression_statement "sVar6 = 0;" (assignment_expression "sVar6 = 0" identifier = number_literal) ;) (do_statement "do {\n      uVar9 = local_68 + 1;\n      sVar13 = sVar6 + 1;\n      uVar14 = local_60[local_68];\n      if (uVar14 - 0x10a < 10) {\n        uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);\n        if ((uVar18 & 0x301) == 0) {\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }\n        else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }\n      }\n      else {\n        d_00->tokens[sVar6] = uVar14;\n        local_68 = uVar9;\n        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }\n      }\n      uVar9 = d->tindex;\n      sVar6 = sVar13;\n    } while (local_68 < uVar9);" do (compound_statement "{\n      uVar9 = local_68 + 1;\n      sVar13 = sVar6 + 1;\n      uVar14 = local_60[local_68];\n      if (uVar14 - 0x10a < 10) {\n        uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);\n        if ((uVar18 & 0x301) == 0) {\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }\n        else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }\n      }\n      else {\n        d_00->tokens[sVar6] = uVar14;\n        local_68 = uVar9;\n        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }\n      }\n      uVar9 = d->tindex;\n      sVar6 = sVar13;\n    }" { (expression_statement "uVar9 = local_68 + 1;" (assignment_expression "uVar9 = local_68 + 1" identifier = (binary_expression "local_68 + 1" identifier + number_literal)) ;) (expression_statement "sVar13 = sVar6 + 1;" (assignment_expression "sVar13 = sVar6 + 1" identifier = (binary_expression "sVar6 + 1" identifier + number_literal)) ;) (expression_statement "uVar14 = local_60[local_68];" (assignment_expression "uVar14 = local_60[local_68]" identifier = (subscript_expression "local_60[local_68]" identifier [ identifier ])) ;) (if_statement "if (uVar14 - 0x10a < 10) {\n        uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);\n        if ((uVar18 & 0x301) == 0) {\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }\n        else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }\n      }\n      else {\n        d_00->tokens[sVar6] = uVar14;\n        local_68 = uVar9;\n        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }\n      }" if (parenthesized_expression "(uVar14 - 0x10a < 10)" ( (binary_expression "uVar14 - 0x10a < 10" (binary_expression "uVar14 - 0x10a" identifier - number_literal) < number_literal) )) (compound_statement "{\n        uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);\n        if ((uVar18 & 0x301) == 0) {\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }\n        else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }\n      }" { (expression_statement "uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f);" (assignment_expression "uVar18 = 1 << ((byte)(uVar14 - 0x10a) & 0x1f)" identifier = (binary_expression "1 << ((byte)(uVar14 - 0x10a) & 0x1f)" number_literal << (parenthesized_expression "((byte)(uVar14 - 0x10a) & 0x1f)" ( (binary_expression "(byte)(uVar14 - 0x10a) & 0x1f" (call_expression "(byte)(uVar14 - 0x10a)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar14 - 0x10a)" ( (binary_expression "uVar14 - 0x10a" identifier - number_literal) ))) & number_literal) )))) ;) (if_statement "if ((uVar18 & 0x301) == 0) {\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }\n        else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }" if (parenthesized_expression "((uVar18 & 0x301) == 0)" ( (binary_expression "(uVar18 & 0x301) == 0" (parenthesized_expression "(uVar18 & 0x301)" ( (binary_expression "uVar18 & 0x301" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }\n        }" { (if_statement "if (((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }\n          else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }" if (parenthesized_expression "(((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false))" ( (binary_expression "((uVar18 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)" (parenthesized_expression "((uVar18 & 0xf0) == 0)" ( (binary_expression "(uVar18 & 0xf0) == 0" (parenthesized_expression "(uVar18 & 0xf0)" ( (binary_expression "uVar18 & 0xf0" identifier & number_literal) )) == number_literal) )) || (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) ))) )) (compound_statement "{\n            d_00->tokens[sVar6] = uVar14;\n            local_68 = uVar9;\n          }" { (expression_statement "d_00->tokens[sVar6] = uVar14;" (assignment_expression "d_00->tokens[sVar6] = uVar14" (subscript_expression "d_00->tokens[sVar6]" (field_expression "d_00->tokens" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "local_68 = uVar9;" (assignment_expression "local_68 = uVar9" identifier = identifier) ;) }) (else_clause "else {\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }" else (compound_statement "{\n            d_00->tokens[sVar6] = 0x100;\n            local_68 = uVar9;\n          }" { (expression_statement "d_00->tokens[sVar6] = 0x100;" (assignment_expression "d_00->tokens[sVar6] = 0x100" (subscript_expression "d_00->tokens[sVar6]" (field_expression "d_00->tokens" identifier -> field_identifier) [ identifier ]) = number_literal) ;) (expression_statement "local_68 = uVar9;" (assignment_expression "local_68 = uVar9" identifier = identifier) ;) }))) }) (else_clause "else {\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }" else (compound_statement "{\n          ccl.w[0] = 0xffffffff;\n          ccl.w[1] = 0xffffffff;\n          ccl.w[2] = 0xffffffff;\n          ccl.w[3] = 0xffffffff;\n          ccl.w[4] = 0xffffffff;\n          ccl.w[5] = 0xffffffff;\n          ccl.w[6] = 0xffffffff;\n          ccl.w[7] = 0xffffffff;\n          pVar8 = charclass_index(d_00,&ccl);\n          ptVar7 = d_00->tokens;\n          sVar13 = sVar6 + 2;\n          ptVar7[sVar6] = pVar8 + 0x114;\n          ptVar7[sVar6 + 1] = 0x102;\n          local_60 = d->tokens;\n          iVar12 = local_68 + 1;\n          local_68 = local_68 + 2;\n          local_5a = _Var2;\n          if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }\n        }" { (expression_statement "ccl.w[0] = 0xffffffff;" (assignment_expression "ccl.w[0] = 0xffffffff" (subscript_expression "ccl.w[0]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[1] = 0xffffffff;" (assignment_expression "ccl.w[1] = 0xffffffff" (subscript_expression "ccl.w[1]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[2] = 0xffffffff;" (assignment_expression "ccl.w[2] = 0xffffffff" (subscript_expression "ccl.w[2]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[3] = 0xffffffff;" (assignment_expression "ccl.w[3] = 0xffffffff" (subscript_expression "ccl.w[3]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[4] = 0xffffffff;" (assignment_expression "ccl.w[4] = 0xffffffff" (subscript_expression "ccl.w[4]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[5] = 0xffffffff;" (assignment_expression "ccl.w[5] = 0xffffffff" (subscript_expression "ccl.w[5]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[6] = 0xffffffff;" (assignment_expression "ccl.w[6] = 0xffffffff" (subscript_expression "ccl.w[6]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "ccl.w[7] = 0xffffffff;" (assignment_expression "ccl.w[7] = 0xffffffff" (subscript_expression "ccl.w[7]" (field_expression "ccl.w" identifier . field_identifier) [ number_literal ]) = number_literal) ;) (expression_statement "pVar8 = charclass_index(d_00,&ccl);" (assignment_expression "pVar8 = charclass_index(d_00,&ccl)" identifier = (call_expression "charclass_index(d_00,&ccl)" identifier (argument_list "(d_00,&ccl)" ( identifier , (pointer_expression "&ccl" & identifier) )))) ;) (expression_statement "ptVar7 = d_00->tokens;" (assignment_expression "ptVar7 = d_00->tokens" identifier = (field_expression "d_00->tokens" identifier -> field_identifier)) ;) (expression_statement "sVar13 = sVar6 + 2;" (assignment_expression "sVar13 = sVar6 + 2" identifier = (binary_expression "sVar6 + 2" identifier + number_literal)) ;) (expression_statement "ptVar7[sVar6] = pVar8 + 0x114;" (assignment_expression "ptVar7[sVar6] = pVar8 + 0x114" (subscript_expression "ptVar7[sVar6]" identifier [ identifier ]) = (binary_expression "pVar8 + 0x114" identifier + number_literal)) ;) (expression_statement "ptVar7[sVar6 + 1] = 0x102;" (assignment_expression "ptVar7[sVar6 + 1] = 0x102" (subscript_expression "ptVar7[sVar6 + 1]" identifier [ (binary_expression "sVar6 + 1" identifier + number_literal) ]) = number_literal) ;) (expression_statement "local_60 = d->tokens;" (assignment_expression "local_60 = d->tokens" identifier = (field_expression "d->tokens" identifier -> field_identifier)) ;) (expression_statement "iVar12 = local_68 + 1;" (assignment_expression "iVar12 = local_68 + 1" identifier = (binary_expression "local_68 + 1" identifier + number_literal)) ;) (expression_statement "local_68 = local_68 + 2;" (assignment_expression "local_68 = local_68 + 2" identifier = (binary_expression "local_68 + 2" identifier + number_literal)) ;) (expression_statement "local_5a = _Var2;" (assignment_expression "local_5a = _Var2" identifier = identifier) ;) (if_statement "if (2 < local_60[iVar12] - 0x101U) {\n            local_68 = uVar9;\n          }" if (parenthesized_expression "(2 < local_60[iVar12] - 0x101U)" ( (binary_expression "2 < local_60[iVar12] - 0x101U" number_literal < (binary_expression "local_60[iVar12] - 0x101U" (subscript_expression "local_60[iVar12]" identifier [ identifier ]) - number_literal)) )) (compound_statement "{\n            local_68 = uVar9;\n          }" { (expression_statement "local_68 = uVar9;" (assignment_expression "local_68 = uVar9" identifier = identifier) ;) })) }))) }) (else_clause "else {\n        d_00->tokens[sVar6] = uVar14;\n        local_68 = uVar9;\n        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }\n      }" else (compound_statement "{\n        d_00->tokens[sVar6] = uVar14;\n        local_68 = uVar9;\n        if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }\n      }" { (expression_statement "d_00->tokens[sVar6] = uVar14;" (assignment_expression "d_00->tokens[sVar6] = uVar14" (subscript_expression "d_00->tokens[sVar6]" (field_expression "d_00->tokens" identifier -> field_identifier) [ identifier ]) = identifier) ;) (expression_statement "local_68 = uVar9;" (assignment_expression "local_68 = uVar9" identifier = identifier) ;) (if_statement "if (uVar14 < 0x100 || 0x113 < (int)uVar14) {\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }" if (parenthesized_expression "(uVar14 < 0x100 || 0x113 < (int)uVar14)" ( (binary_expression "uVar14 < 0x100 || 0x113 < (int)uVar14" (binary_expression "uVar14 < 0x100" identifier < number_literal) || (binary_expression "0x113 < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n          bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;\n        }" { (expression_statement "bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14;" (assignment_expression "bVar3 = uVar14 < 0x100 || 0x113 < (int)uVar14" identifier = (binary_expression "uVar14 < 0x100 || 0x113 < (int)uVar14" (binary_expression "uVar14 < 0x100" identifier < number_literal) || (binary_expression "0x113 < (int)uVar14" number_literal < (cast_expression "(int)uVar14" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) }))) (expression_statement "uVar9 = d->tindex;" (assignment_expression "uVar9 = d->tindex" identifier = (field_expression "d->tindex" identifier -> field_identifier)) ;) (expression_statement "sVar6 = sVar13;" (assignment_expression "sVar6 = sVar13" identifier = identifier) ;) }) while (parenthesized_expression "(local_68 < uVar9)" ( (binary_expression "local_68 < uVar9" identifier < identifier) )) ;) (expression_statement "d_00->tindex = sVar13;" (assignment_expression "d_00->tindex = sVar13" (field_expression "d_00->tindex" identifier -> field_identifier) = identifier) ;) (if_statement "if ((!bVar3) || ((local_5a == 0 && ((d->localeinfo).multibyte == false)))) goto LAB_00026a5d;" if (parenthesized_expression "((!bVar3) || ((local_5a == 0 && ((d->localeinfo).multibyte == false))))" ( (binary_expression "(!bVar3) || ((local_5a == 0 && ((d->localeinfo).multibyte == false)))" (parenthesized_expression "(!bVar3)" ( (unary_expression "!bVar3" ! identifier) )) || (parenthesized_expression "((local_5a == 0 && ((d->localeinfo).multibyte == false)))" ( (parenthesized_expression "(local_5a == 0 && ((d->localeinfo).multibyte == false))" ( (binary_expression "local_5a == 0 && ((d->localeinfo).multibyte == false)" (binary_expression "local_5a == 0" identifier == number_literal) && (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_00026a5d;" goto statement_identifier ;)) (expression_statement "d->superset = d_00;" (assignment_expression "d->superset = d_00" (field_expression "d->superset" identifier -> field_identifier) = identifier) ;) }))) (if_statement "if (uVar9 == 0) {\n    if ((d->localeinfo).using_utf8 == false) goto LAB_00026a37;\nLAB_00026bd5:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      free(d->superset);\n      d->superset = (dfa *)0x0;\n    }\n  }\n  else {\n    uVar14 = 0;\n    do {\n      iVar12 = d->tokens[uVar14];\n      if (0x10d < iVar12) {\n        if (iVar12 < 0x112) {\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }\n        else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }\n      }\n      uVar14 = uVar14 + 1;\n    } while (uVar14 != uVar9);\n    _Var2 = (d->localeinfo).using_utf8;\n    if (_Var2 == false) goto LAB_00026a37;\n    uVar14 = 0;\n    cVar15 = '\0';\n    do {\n      iVar12 = d->tokens[uVar14];\n      cVar16 = _Var2;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00026a37;\n        cVar16 = cVar15;\n        if (iVar12 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar14 = uVar14 + 1;\n      cVar15 = cVar16;\n    } while (uVar14 != uVar9);\n    if (cVar16 == '\0') goto LAB_00026bd5;\n  }" if (parenthesized_expression "(uVar9 == 0)" ( (binary_expression "uVar9 == 0" identifier == number_literal) )) (compound_statement "{\n    if ((d->localeinfo).using_utf8 == false) goto LAB_00026a37;\nLAB_00026bd5:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      free(d->superset);\n      d->superset = (dfa *)0x0;\n    }\n  }" { (if_statement "if ((d->localeinfo).using_utf8 == false) goto LAB_00026a37;" 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_00026a37;" goto statement_identifier ;)) (labeled_statement "LAB_00026bd5:\n    if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      free(d->superset);\n      d->superset = (dfa *)0x0;\n    }" statement_identifier : (if_statement "if (d->superset != (dfa *)0x0) {\n      dfafree(d->superset);\n      free(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      free(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 "free(d->superset);" (call_expression "free(d->superset)" 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    uVar14 = 0;\n    do {\n      iVar12 = d->tokens[uVar14];\n      if (0x10d < iVar12) {\n        if (iVar12 < 0x112) {\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }\n        else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }\n      }\n      uVar14 = uVar14 + 1;\n    } while (uVar14 != uVar9);\n    _Var2 = (d->localeinfo).using_utf8;\n    if (_Var2 == false) goto LAB_00026a37;\n    uVar14 = 0;\n    cVar15 = '\0';\n    do {\n      iVar12 = d->tokens[uVar14];\n      cVar16 = _Var2;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00026a37;\n        cVar16 = cVar15;\n        if (iVar12 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar14 = uVar14 + 1;\n      cVar15 = cVar16;\n    } while (uVar14 != uVar9);\n    if (cVar16 == '\0') goto LAB_00026bd5;\n  }" else (compound_statement "{\n    uVar14 = 0;\n    do {\n      iVar12 = d->tokens[uVar14];\n      if (0x10d < iVar12) {\n        if (iVar12 < 0x112) {\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }\n        else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }\n      }\n      uVar14 = uVar14 + 1;\n    } while (uVar14 != uVar9);\n    _Var2 = (d->localeinfo).using_utf8;\n    if (_Var2 == false) goto LAB_00026a37;\n    uVar14 = 0;\n    cVar15 = '\0';\n    do {\n      iVar12 = d->tokens[uVar14];\n      cVar16 = _Var2;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00026a37;\n        cVar16 = cVar15;\n        if (iVar12 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar14 = uVar14 + 1;\n      cVar15 = cVar16;\n    } while (uVar14 != uVar9);\n    if (cVar16 == '\0') goto LAB_00026bd5;\n  }" { (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar12 = d->tokens[uVar14];\n      if (0x10d < iVar12) {\n        if (iVar12 < 0x112) {\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }\n        else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }\n      }\n      uVar14 = uVar14 + 1;\n    } while (uVar14 != uVar9);" do (compound_statement "{\n      iVar12 = d->tokens[uVar14];\n      if (0x10d < iVar12) {\n        if (iVar12 < 0x112) {\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }\n        else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }\n      }\n      uVar14 = uVar14 + 1;\n    }" { (expression_statement "iVar12 = d->tokens[uVar14];" (assignment_expression "iVar12 = d->tokens[uVar14]" identifier = (subscript_expression "d->tokens[uVar14]" (field_expression "d->tokens" identifier -> field_identifier) [ identifier ])) ;) (if_statement "if (0x10d < iVar12) {\n        if (iVar12 < 0x112) {\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }\n        else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }\n      }" if (parenthesized_expression "(0x10d < iVar12)" ( (binary_expression "0x10d < iVar12" number_literal < identifier) )) (compound_statement "{\n        if (iVar12 < 0x112) {\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }\n        else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }\n      }" { (if_statement "if (iVar12 < 0x112) {\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }\n        else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }" if (parenthesized_expression "(iVar12 < 0x112)" ( (binary_expression "iVar12 < 0x112" identifier < number_literal) )) (compound_statement "{\n          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;\n        }" { (if_statement "if ((d->localeinfo).multibyte != false) goto LAB_000269ad;" 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_000269ad;" goto statement_identifier ;)) }) (else_clause "else if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }" else (if_statement "if (iVar12 < 0x114) {\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }" if (parenthesized_expression "(iVar12 < 0x114)" ( (binary_expression "iVar12 < 0x114" identifier < number_literal) )) (compound_statement "{\nLAB_000269ad:\n          d->dfaexec = dfaexec_noop;\n          goto LAB_000269bd;\n        }" { (labeled_statement "LAB_000269ad:\n          d->dfaexec = dfaexec_noop;" statement_identifier : (expression_statement "d->dfaexec = dfaexec_noop;" (assignment_expression "d->dfaexec = dfaexec_noop" (field_expression "d->dfaexec" identifier -> field_identifier) = identifier) ;)) (goto_statement "goto LAB_000269bd;" goto statement_identifier ;) })))) })) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar14 != uVar9)" ( (binary_expression "uVar14 != uVar9" identifier != identifier) )) ;) (expression_statement "_Var2 = (d->localeinfo).using_utf8;" (assignment_expression "_Var2 = (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 (_Var2 == false) goto LAB_00026a37;" if (parenthesized_expression "(_Var2 == false)" ( (binary_expression "_Var2 == false" identifier == false) )) (goto_statement "goto LAB_00026a37;" goto statement_identifier ;)) (expression_statement "uVar14 = 0;" (assignment_expression "uVar14 = 0" identifier = number_literal) ;) (expression_statement "cVar15 = '\0';" (assignment_expression "cVar15 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      iVar12 = d->tokens[uVar14];\n      cVar16 = _Var2;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00026a37;\n        cVar16 = cVar15;\n        if (iVar12 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar14 = uVar14 + 1;\n      cVar15 = cVar16;\n    } while (uVar14 != uVar9);" do (compound_statement "{\n      iVar12 = d->tokens[uVar14];\n      cVar16 = _Var2;\n      if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00026a37;\n        cVar16 = cVar15;\n        if (iVar12 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }\n      uVar14 = uVar14 + 1;\n      cVar15 = cVar16;\n    }" { (expression_statement "iVar12 = d->tokens[uVar14];" (assignment_expression "iVar12 = d->tokens[uVar14]" identifier = (subscript_expression "d->tokens[uVar14]" (field_expression "d->tokens" identifier -> field_identifier) [ identifier ])) ;) (expression_statement "cVar16 = _Var2;" (assignment_expression "cVar16 = _Var2" identifier = identifier) ;) (if_statement "if (iVar12 != 0x112) {\n        if (iVar12 == 0x113) goto LAB_00026a37;\n        cVar16 = cVar15;\n        if (iVar12 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }" if (parenthesized_expression "(iVar12 != 0x112)" ( (binary_expression "iVar12 != 0x112" identifier != number_literal) )) (compound_statement "{\n        if (iVar12 == 0x113) goto LAB_00026a37;\n        cVar16 = cVar15;\n        if (iVar12 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }\n      }" { (if_statement "if (iVar12 == 0x113) goto LAB_00026a37;" if (parenthesized_expression "(iVar12 == 0x113)" ( (binary_expression "iVar12 == 0x113" identifier == number_literal) )) (goto_statement "goto LAB_00026a37;" goto statement_identifier ;)) (expression_statement "cVar16 = cVar15;" (assignment_expression "cVar16 = cVar15" identifier = identifier) ;) (if_statement "if (iVar12 == 0x10a) {\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" if (parenthesized_expression "(iVar12 == 0x10a)" ( (binary_expression "iVar12 == 0x10a" identifier == number_literal) )) (compound_statement "{\n                    /* WARNING: Subroutine does not return */\n          abort();\n        }" { comment (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "uVar14 = uVar14 + 1;" (assignment_expression "uVar14 = uVar14 + 1" identifier = (binary_expression "uVar14 + 1" identifier + number_literal)) ;) (expression_statement "cVar15 = cVar16;" (assignment_expression "cVar15 = cVar16" identifier = identifier) ;) }) while (parenthesized_expression "(uVar14 != uVar9)" ( (binary_expression "uVar14 != uVar9" identifier != identifier) )) ;) (if_statement "if (cVar16 == '\0') goto LAB_00026bd5;" if (parenthesized_expression "(cVar16 == '\0')" ( (binary_expression "cVar16 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00026bd5;" goto statement_identifier ;)) }))) (expression_statement "free(d->multibyte_prop);" (call_expression "free(d->multibyte_prop)" identifier (argument_list "(d->multibyte_prop)" ( (field_expression "d->multibyte_prop" identifier -> field_identifier) ))) ;) (expression_statement "free((d->lex).brack.chars);" (call_expression "free((d->lex).brack.chars)" identifier (argument_list "((d->lex).brack.chars)" ( (field_expression "(d->lex).brack.chars" (field_expression "(d->lex).brack" (parenthesized_expression "(d->lex)" ( (field_expression "d->lex" identifier -> field_identifier) )) . field_identifier) . field_identifier) ))) ;) (expression_statement "free((d->mb_follows).elems);" (call_expression "free((d->mb_follows).elems)" identifier (argument_list "((d->mb_follows).elems)" ( (field_expression "(d->mb_follows).elems" (parenthesized_expression "(d->mb_follows)" ( (field_expression "d->mb_follows" identifier -> field_identifier) )) . field_identifier) ))) ;) (expression_statement "ppsVar10 = d->mb_trans;" (assignment_expression "ppsVar10 = d->mb_trans" identifier = (field_expression "d->mb_trans" identifier -> field_identifier)) ;) (if_statement "if (ppsVar10 != (state_num **)0x0) {\n    if (-1 < d->tralloc) {\n      iVar12 = -1;\n      do {\n        ppsVar10 = ppsVar10 + iVar12;\n        iVar12 = iVar12 + 1;\n        free(*ppsVar10);\n        ppsVar10 = d->mb_trans;\n      } while (iVar12 < d->tralloc);\n    }\n    free(ppsVar10 + -2);\n  }" if (parenthesized_expression "(ppsVar10 != (state_num **)0x0)" ( (binary_expression "ppsVar10 != (state_num **)0x0" identifier != (cast_expression "(state_num **)0x0" ( (type_descriptor "state_num **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n    if (-1 < d->tralloc) {\n      iVar12 = -1;\n      do {\n        ppsVar10 = ppsVar10 + iVar12;\n        iVar12 = iVar12 + 1;\n        free(*ppsVar10);\n        ppsVar10 = d->mb_trans;\n      } while (iVar12 < d->tralloc);\n    }\n    free(ppsVar10 + -2);\n  }" { (if_statement "if (-1 < d->tralloc) {\n      iVar12 = -1;\n      do {\n        ppsVar10 = ppsVar10 + iVar12;\n        iVar12 = iVar12 + 1;\n        free(*ppsVar10);\n        ppsVar10 = d->mb_trans;\n      } while (iVar12 < d->tralloc);\n    }" if (parenthesized_expression "(-1 < d->tralloc)" ( (binary_expression "-1 < d->tralloc" number_literal < (field_expression "d->tralloc" identifier -> field_identifier)) )) (compound_statement "{\n      iVar12 = -1;\n      do {\n        ppsVar10 = ppsVar10 + iVar12;\n        iVar12 = iVar12 + 1;\n        free(*ppsVar10);\n        ppsVar10 = d->mb_trans;\n      } while (iVar12 < d->tralloc);\n    }" { (expression_statement "iVar12 = -1;" (assignment_expression "iVar12 = -1" identifier = number_literal) ;) (do_statement "do {\n        ppsVar10 = ppsVar10 + iVar12;\n        iVar12 = iVar12 + 1;\n        free(*ppsVar10);\n        ppsVar10 = d->mb_trans;\n      } while (iVar12 < d->tralloc);" do (compound_statement "{\n        ppsVar10 = ppsVar10 + iVar12;\n        iVar12 = iVar12 + 1;\n        free(*ppsVar10);\n        ppsVar10 = d->mb_trans;\n      }" { (expression_statement "ppsVar10 = ppsVar10 + iVar12;" (assignment_expression "ppsVar10 = ppsVar10 + iVar12" identifier = (binary_expression "ppsVar10 + iVar12" identifier + identifier)) ;) (expression_statement "iVar12 = iVar12 + 1;" (assignment_expression "iVar12 = iVar12 + 1" identifier = (binary_expression "iVar12 + 1" identifier + number_literal)) ;) (expression_statement "free(*ppsVar10);" (call_expression "free(*ppsVar10)" identifier (argument_list "(*ppsVar10)" ( (pointer_expression "*ppsVar10" * identifier) ))) ;) (expression_statement "ppsVar10 = d->mb_trans;" (assignment_expression "ppsVar10 = d->mb_trans" identifier = (field_expression "d->mb_trans" identifier -> field_identifier)) ;) }) while (parenthesized_expression "(iVar12 < d->tralloc)" ( (binary_expression "iVar12 < d->tralloc" identifier < (field_expression "d->tralloc" identifier -> field_identifier)) )) ;) })) (expression_statement "free(ppsVar10 + -2);" (call_expression "free(ppsVar10 + -2)" identifier (argument_list "(ppsVar10 + -2)" ( (binary_expression "ppsVar10 + -2" identifier + number_literal) ))) ;) })) (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->fast = true;" (assignment_expression "d->fast = true" (field_expression "d->fast" identifier -> field_identifier) = true) ;) (expression_statement "d->dfaexec = dfaexec_sb;" (assignment_expression "d->dfaexec = dfaexec_sb" (field_expression "d->dfaexec" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_00026a37:\n  dfaanalyze(d,searchflag);" statement_identifier : (expression_statement "dfaanalyze(d,searchflag);" (call_expression "dfaanalyze(d,searchflag)" identifier (argument_list "(d,searchflag)" ( identifier , identifier ))) ;)) (labeled_statement "LAB_000269bd:\n  if (d->superset != (dfa *)0x0) {\n    d->fast = true;\n    dfaanalyze(d->superset,searchflag);\n  }" statement_identifier : (if_statement "if (d->superset != (dfa *)0x0) {\n    d->fast = true;\n    dfaanalyze(d->superset,searchflag);\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    d->fast = true;\n    dfaanalyze(d->superset,searchflag);\n  }" { (expression_statement "d->fast = true;" (assignment_expression "d->fast = true" (field_expression "d->fast" identifier -> field_identifier) = true) ;) (expression_statement "dfaanalyze(d->superset,searchflag);" (call_expression "dfaanalyze(d->superset,searchflag)" identifier (argument_list "(d->superset,searchflag)" ( (field_expression "d->superset" identifier -> field_identifier) , identifier ))) ;) }))) (if_statement "if (iVar1 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(iVar1 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "iVar1 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) comment (expression_statement "__stack_chk_fail_local();" (call_expression "__stack_chk_fail_local()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit "void FUN_000264c0(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  void *__dest;\n  int iVar4;\n  uint uVar5;\n  char *pcVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  char cVar14;\n  char cVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  undefined4 uStackY_90;\n  undefined4 uStack_80;\n  undefined1 auStack_7c [8];\n  undefined4 *local_74;\n  undefined **local_70 [2];\n  uint local_68;\n  int local_64;\n  int local_60;\n  char local_5b;\n  char local_5a;\n  char local_59;\n  undefined4 *local_58;\n  undefined4 local_54;\n  undefined **local_50;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  bVar18 = 0;\n  local_70[0] = &__DT_PLTGOT;\n  puVar11 = auStack_7c;\n  local_54 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  param_3[0x98] = (undefined *)0xffffffff;\n  param_3[0x96] = (undefined *)param_1;\n  param_3[0x97] = (undefined *)param_2;\n  local_59 = *(char *)(param_3 + 1);\n  if (local_59 == '\0') {\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }\n  if (param_3[0xab] == (undefined *)0x0) {\n    FUN_000221a0();\n  }\n  uVar3 = FUN_00024d90();\n  param_3[0xa4] = (undefined *)uVar3;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025a60();\n  local_64 = (int)param_3[0xa4];\n  if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }\n  if (local_64 == 0x106) {\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }\n  if (local_64 != -1) {\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }\n  FUN_000221a0();\n  FUN_000221a0();\n  iVar7 = (int)param_3[0xab];\n  if (iVar7 != 0) {\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }\n  param_3[0xab] = (undefined *)(iVar7 + 1);\n  local_74 = (undefined4 *)FUN_0002efa0(0x834);\n  puVar12 = param_3;\n  puVar16 = local_74;\n  for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }\n  *(undefined1 *)(local_74 + 0xcc) = 0;\n  local_74[0xb4] = 0;\n  local_74[0xb5] = 0;\n  local_50 = local_70[0] + -0x98c7;\n  local_74[0xca] = local_50;\n  local_74[0xb6] = 0;\n  local_74[0xb7] = 0;\n  local_74[0xbb] = 0;\n  local_74[0xbc] = 0;\n  local_74[0xb9] = 0;\n  local_74[0xbd] = 0;\n  iVar7 = local_74[0x94] << 5;\n  local_74[0xc0] = 0;\n  local_74[0xc1] = 0;\n  local_74[0xc2] = 0;\n  local_74[0xc3] = 0;\n  if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {\nLAB_00026c0e:\n                    \n    FUN_0002f1c0();\n  }\n  __dest = (void *)FUN_0002efa0(iVar7);\n  iVar7 = (int)param_3[0x93];\n  local_74[0x92] = __dest;\n  if (iVar7 != 0) {\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }\n  iVar7 = (int)param_3[0xa7] << 3;\n  if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;\n  uVar3 = FUN_0002efa0(iVar7);\n  local_74[0xa6] = uVar3;\n  iVar7 = (int)param_3[0xa7];\n  local_74[0xa8] = iVar7 * 2;\n  if (iVar7 == 0) {\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }\n  else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }\n  if (uVar5 == 0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }\n  else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }\n  free(param_3[0xb4]);\n  free(param_3[0xa0]);\n  free(param_3[0xc5]);\n  iVar7 = (int)param_3[200];\n  if (iVar7 != 0) {\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  *(undefined1 *)(param_3 + 0xac) = 1;\n  param_3[0xca] = (undefined *)local_50;\nLAB_00026a37:\n  FUN_00022280();\nLAB_000269bd:\n  if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00038830();\n}\n\n" (function_definition "void FUN_000264c0(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  void *__dest;\n  int iVar4;\n  uint uVar5;\n  char *pcVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  char cVar14;\n  char cVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  undefined4 uStackY_90;\n  undefined4 uStack_80;\n  undefined1 auStack_7c [8];\n  undefined4 *local_74;\n  undefined **local_70 [2];\n  uint local_68;\n  int local_64;\n  int local_60;\n  char local_5b;\n  char local_5a;\n  char local_59;\n  undefined4 *local_58;\n  undefined4 local_54;\n  undefined **local_50;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  bVar18 = 0;\n  local_70[0] = &__DT_PLTGOT;\n  puVar11 = auStack_7c;\n  local_54 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  param_3[0x98] = (undefined *)0xffffffff;\n  param_3[0x96] = (undefined *)param_1;\n  param_3[0x97] = (undefined *)param_2;\n  local_59 = *(char *)(param_3 + 1);\n  if (local_59 == '\0') {\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }\n  if (param_3[0xab] == (undefined *)0x0) {\n    FUN_000221a0();\n  }\n  uVar3 = FUN_00024d90();\n  param_3[0xa4] = (undefined *)uVar3;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025a60();\n  local_64 = (int)param_3[0xa4];\n  if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }\n  if (local_64 == 0x106) {\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }\n  if (local_64 != -1) {\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }\n  FUN_000221a0();\n  FUN_000221a0();\n  iVar7 = (int)param_3[0xab];\n  if (iVar7 != 0) {\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }\n  param_3[0xab] = (undefined *)(iVar7 + 1);\n  local_74 = (undefined4 *)FUN_0002efa0(0x834);\n  puVar12 = param_3;\n  puVar16 = local_74;\n  for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }\n  *(undefined1 *)(local_74 + 0xcc) = 0;\n  local_74[0xb4] = 0;\n  local_74[0xb5] = 0;\n  local_50 = local_70[0] + -0x98c7;\n  local_74[0xca] = local_50;\n  local_74[0xb6] = 0;\n  local_74[0xb7] = 0;\n  local_74[0xbb] = 0;\n  local_74[0xbc] = 0;\n  local_74[0xb9] = 0;\n  local_74[0xbd] = 0;\n  iVar7 = local_74[0x94] << 5;\n  local_74[0xc0] = 0;\n  local_74[0xc1] = 0;\n  local_74[0xc2] = 0;\n  local_74[0xc3] = 0;\n  if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {\nLAB_00026c0e:\n                    \n    FUN_0002f1c0();\n  }\n  __dest = (void *)FUN_0002efa0(iVar7);\n  iVar7 = (int)param_3[0x93];\n  local_74[0x92] = __dest;\n  if (iVar7 != 0) {\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }\n  iVar7 = (int)param_3[0xa7] << 3;\n  if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;\n  uVar3 = FUN_0002efa0(iVar7);\n  local_74[0xa6] = uVar3;\n  iVar7 = (int)param_3[0xa7];\n  local_74[0xa8] = iVar7 * 2;\n  if (iVar7 == 0) {\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }\n  else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }\n  if (uVar5 == 0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }\n  else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }\n  free(param_3[0xb4]);\n  free(param_3[0xa0]);\n  free(param_3[0xc5]);\n  iVar7 = (int)param_3[200];\n  if (iVar7 != 0) {\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  *(undefined1 *)(param_3 + 0xac) = 1;\n  param_3[0xca] = (undefined *)local_50;\nLAB_00026a37:\n  FUN_00022280();\nLAB_000269bd:\n  if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00038830();\n}" primitive_type (function_declarator "FUN_000264c0(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)" identifier (parameter_list "(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)" ( (parameter_declaration "undefined4 param_1" type_identifier identifier) , (parameter_declaration "undefined4 param_2" type_identifier identifier) , (parameter_declaration "undefined **param_3" type_identifier (pointer_declarator "**param_3" * (pointer_declarator "*param_3" * identifier))) , (parameter_declaration "undefined4 param_4" type_identifier identifier) ))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  void *__dest;\n  int iVar4;\n  uint uVar5;\n  char *pcVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  char cVar14;\n  char cVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  undefined4 uStackY_90;\n  undefined4 uStack_80;\n  undefined1 auStack_7c [8];\n  undefined4 *local_74;\n  undefined **local_70 [2];\n  uint local_68;\n  int local_64;\n  int local_60;\n  char local_5b;\n  char local_5a;\n  char local_59;\n  undefined4 *local_58;\n  undefined4 local_54;\n  undefined **local_50;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  bVar18 = 0;\n  local_70[0] = &__DT_PLTGOT;\n  puVar11 = auStack_7c;\n  local_54 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  param_3[0x98] = (undefined *)0xffffffff;\n  param_3[0x96] = (undefined *)param_1;\n  param_3[0x97] = (undefined *)param_2;\n  local_59 = *(char *)(param_3 + 1);\n  if (local_59 == '\0') {\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }\n  if (param_3[0xab] == (undefined *)0x0) {\n    FUN_000221a0();\n  }\n  uVar3 = FUN_00024d90();\n  param_3[0xa4] = (undefined *)uVar3;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025a60();\n  local_64 = (int)param_3[0xa4];\n  if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }\n  if (local_64 == 0x106) {\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }\n  if (local_64 != -1) {\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }\n  FUN_000221a0();\n  FUN_000221a0();\n  iVar7 = (int)param_3[0xab];\n  if (iVar7 != 0) {\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }\n  param_3[0xab] = (undefined *)(iVar7 + 1);\n  local_74 = (undefined4 *)FUN_0002efa0(0x834);\n  puVar12 = param_3;\n  puVar16 = local_74;\n  for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }\n  *(undefined1 *)(local_74 + 0xcc) = 0;\n  local_74[0xb4] = 0;\n  local_74[0xb5] = 0;\n  local_50 = local_70[0] + -0x98c7;\n  local_74[0xca] = local_50;\n  local_74[0xb6] = 0;\n  local_74[0xb7] = 0;\n  local_74[0xbb] = 0;\n  local_74[0xbc] = 0;\n  local_74[0xb9] = 0;\n  local_74[0xbd] = 0;\n  iVar7 = local_74[0x94] << 5;\n  local_74[0xc0] = 0;\n  local_74[0xc1] = 0;\n  local_74[0xc2] = 0;\n  local_74[0xc3] = 0;\n  if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {\nLAB_00026c0e:\n                    \n    FUN_0002f1c0();\n  }\n  __dest = (void *)FUN_0002efa0(iVar7);\n  iVar7 = (int)param_3[0x93];\n  local_74[0x92] = __dest;\n  if (iVar7 != 0) {\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }\n  iVar7 = (int)param_3[0xa7] << 3;\n  if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;\n  uVar3 = FUN_0002efa0(iVar7);\n  local_74[0xa6] = uVar3;\n  iVar7 = (int)param_3[0xa7];\n  local_74[0xa8] = iVar7 * 2;\n  if (iVar7 == 0) {\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }\n  else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }\n  if (uVar5 == 0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }\n  else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }\n  free(param_3[0xb4]);\n  free(param_3[0xa0]);\n  free(param_3[0xc5]);\n  iVar7 = (int)param_3[200];\n  if (iVar7 != 0) {\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  *(undefined1 *)(param_3 + 0xac) = 1;\n  param_3[0xca] = (undefined *)local_50;\nLAB_00026a37:\n  FUN_00022280();\nLAB_000269bd:\n  if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00038830();\n}" { (declaration "int iVar1;" primitive_type identifier ;) (declaration "uint uVar2;" type_identifier identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "void *__dest;" primitive_type (pointer_declarator "*__dest" * identifier) ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "uint uVar5;" type_identifier identifier ;) (declaration "char *pcVar6;" primitive_type (pointer_declarator "*pcVar6" * identifier) ;) (declaration "int iVar7;" primitive_type identifier ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "uint uVar9;" type_identifier identifier ;) (declaration "undefined1 *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "undefined1 *puVar11;" type_identifier (pointer_declarator "*puVar11" * identifier) ;) (declaration "undefined4 *puVar12;" type_identifier (pointer_declarator "*puVar12" * identifier) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "char cVar14;" primitive_type identifier ;) (declaration "char cVar15;" primitive_type identifier ;) (declaration "undefined4 *puVar16;" type_identifier (pointer_declarator "*puVar16" * identifier) ;) (declaration "uint uVar17;" type_identifier identifier ;) (declaration "int in_GS_OFFSET;" primitive_type identifier ;) (declaration "byte bVar18;" type_identifier identifier ;) (declaration "undefined4 uStackY_90;" type_identifier identifier ;) (declaration "undefined4 uStack_80;" type_identifier identifier ;) (declaration "undefined1 auStack_7c [8];" type_identifier (array_declarator "auStack_7c [8]" identifier [ number_literal ]) ;) (declaration "undefined4 *local_74;" type_identifier (pointer_declarator "*local_74" * identifier) ;) (declaration "undefined **local_70 [2];" type_identifier (pointer_declarator "**local_70 [2]" * (pointer_declarator "*local_70 [2]" * (array_declarator "local_70 [2]" identifier [ number_literal ]))) ;) (declaration "uint local_68;" type_identifier identifier ;) (declaration "int local_64;" primitive_type identifier ;) (declaration "int local_60;" primitive_type identifier ;) (declaration "char local_5b;" primitive_type identifier ;) (declaration "char local_5a;" primitive_type identifier ;) (declaration "char local_59;" primitive_type identifier ;) (declaration "undefined4 *local_58;" type_identifier (pointer_declarator "*local_58" * identifier) ;) (declaration "undefined4 local_54;" type_identifier identifier ;) (declaration "undefined **local_50;" type_identifier (pointer_declarator "**local_50" * (pointer_declarator "*local_50" * identifier)) ;) (declaration "undefined4 local_40;" type_identifier identifier ;) (declaration "undefined4 local_3c;" type_identifier identifier ;) (declaration "undefined4 local_38;" type_identifier identifier ;) (declaration "undefined4 local_34;" type_identifier identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "undefined4 local_2c;" type_identifier identifier ;) (declaration "undefined4 local_28;" type_identifier identifier ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "int local_20;" primitive_type identifier ;) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" identifier = number_literal) ;) (expression_statement "local_70[0] = &__DT_PLTGOT;" (assignment_expression "local_70[0] = &__DT_PLTGOT" (subscript_expression "local_70[0]" identifier [ number_literal ]) = (pointer_expression "&__DT_PLTGOT" & identifier)) ;) (expression_statement "puVar11 = auStack_7c;" (assignment_expression "puVar11 = auStack_7c" identifier = identifier) ;) (expression_statement "local_54 = param_4;" (assignment_expression "local_54 = param_4" identifier = identifier) ;) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" identifier = (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + 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 "param_3[0x98] = (undefined *)0xffffffff;" (assignment_expression "param_3[0x98] = (undefined *)0xffffffff" (subscript_expression "param_3[0x98]" identifier [ number_literal ]) = (cast_expression "(undefined *)0xffffffff" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "param_3[0x96] = (undefined *)param_1;" (assignment_expression "param_3[0x96] = (undefined *)param_1" (subscript_expression "param_3[0x96]" identifier [ number_literal ]) = (cast_expression "(undefined *)param_1" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "param_3[0x97] = (undefined *)param_2;" (assignment_expression "param_3[0x97] = (undefined *)param_2" (subscript_expression "param_3[0x97]" identifier [ number_literal ]) = (cast_expression "(undefined *)param_2" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "local_59 = *(char *)(param_3 + 1);" (assignment_expression "local_59 = *(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 (local_59 == '\0') {\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }" if (parenthesized_expression "(local_59 == '\0')" ( (binary_expression "local_59 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (compound_statement "{\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }" { (expression_statement "puVar10 = &stack0xffffff7c;" (assignment_expression "puVar10 = &stack0xffffff7c" identifier = (pointer_expression "&stack0xffffff7c" & identifier)) ;) (expression_statement "pcVar6 = "no syntax specified";" (assignment_expression "pcVar6 = "no syntax specified"" identifier = (string_literal ""no syntax specified"" " string_content ")) ;) (goto_statement "goto LAB_00026c24;" goto statement_identifier ;) })) (if_statement "if (param_3[0xab] == (undefined *)0x0) {\n    FUN_000221a0();\n  }" if (parenthesized_expression "(param_3[0xab] == (undefined *)0x0)" ( (binary_expression "param_3[0xab] == (undefined *)0x0" (subscript_expression "param_3[0xab]" identifier [ number_literal ]) == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    FUN_000221a0();\n  }" { (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) })) (expression_statement "uVar3 = FUN_00024d90();" (assignment_expression "uVar3 = FUN_00024d90()" identifier = (call_expression "FUN_00024d90()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_3[0xa4] = (undefined *)uVar3;" (assignment_expression "param_3[0xa4] = (undefined *)uVar3" (subscript_expression "param_3[0xa4]" identifier [ number_literal ]) = (cast_expression "(undefined *)uVar3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) 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_00025a60();" (call_expression "FUN_00025a60()" identifier (argument_list "()" ( ))) ;) (expression_statement "local_64 = (int)param_3[0xa4];" (assignment_expression "local_64 = (int)param_3[0xa4]" identifier = (cast_expression "(int)param_3[0xa4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa4]" identifier [ number_literal ]))) ;) (if_statement "if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }" if (parenthesized_expression "(((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64))" ( (binary_expression "((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)" (parenthesized_expression "((local_64 - 0x106U & 0xfffffffd) != 0)" ( (binary_expression "(local_64 - 0x106U & 0xfffffffd) != 0" (parenthesized_expression "(local_64 - 0x106U & 0xfffffffd)" ( (binary_expression "local_64 - 0x106U & 0xfffffffd" (binary_expression "local_64 - 0x106U" identifier - number_literal) & number_literal) )) != number_literal) )) && (parenthesized_expression "(-1 < local_64)" ( (binary_expression "-1 < local_64" number_literal < identifier) ))) )) (compound_statement "{\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }" { (do_statement "do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);" do (compound_statement "{\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    }" { (expression_statement "FUN_00025a60();" (call_expression "FUN_00025a60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = (int)param_3[0xa4];" (assignment_expression "iVar7 = (int)param_3[0xa4]" identifier = (cast_expression "(int)param_3[0xa4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa4]" identifier [ number_literal ]))) ;) (if_statement "if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;" if (parenthesized_expression "((iVar7 - 0x106U & 0xfffffffd) == 0)" ( (binary_expression "(iVar7 - 0x106U & 0xfffffffd) == 0" (parenthesized_expression "(iVar7 - 0x106U & 0xfffffffd)" ( (binary_expression "iVar7 - 0x106U & 0xfffffffd" (binary_expression "iVar7 - 0x106U" identifier - number_literal) & number_literal) )) == number_literal) )) (break_statement "break;" break ;)) }) while (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) )) ;) (expression_statement "local_64 = iVar7;" (assignment_expression "local_64 = iVar7" identifier = identifier) ;) })) (if_statement "if (local_64 == 0x106) {\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }" if (parenthesized_expression "(local_64 == 0x106)" ( (binary_expression "local_64 == 0x106" identifier == number_literal) )) (compound_statement "{\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }" { (do_statement "do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);" do (compound_statement "{\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    }" { (expression_statement "uVar3 = FUN_00024d90();" (assignment_expression "uVar3 = FUN_00024d90()" identifier = (call_expression "FUN_00024d90()" identifier (argument_list "()" ( )))) ;) (expression_statement "param_3[0xa4] = (undefined *)uVar3;" (assignment_expression "param_3[0xa4] = (undefined *)uVar3" (subscript_expression "param_3[0xa4]" identifier [ number_literal ]) = (cast_expression "(undefined *)uVar3" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "FUN_00025a60();" (call_expression "FUN_00025a60()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = (int)param_3[0xa4];" (assignment_expression "iVar7 = (int)param_3[0xa4]" identifier = (cast_expression "(int)param_3[0xa4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa4]" identifier [ number_literal ]))) ;) (while_statement "while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }" while (parenthesized_expression "(((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7)))" ( (parenthesized_expression "((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))" ( (binary_expression "(iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7)" (binary_expression "(iVar7 - 0x106U & 0xfffffffd) != 0" (parenthesized_expression "(iVar7 - 0x106U & 0xfffffffd)" ( (binary_expression "iVar7 - 0x106U & 0xfffffffd" (binary_expression "iVar7 - 0x106U" identifier - number_literal) & number_literal) )) != number_literal) && (parenthesized_expression "(-1 < iVar7)" ( (binary_expression "-1 < iVar7" number_literal < identifier) ))) )) )) (compound_statement "{\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }" { (expression_statement "FUN_00025a60();" (call_expression "FUN_00025a60()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = (int)param_3[0xa4];" (assignment_expression "iVar7 = (int)param_3[0xa4]" identifier = (cast_expression "(int)param_3[0xa4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa4]" identifier [ number_literal ]))) ;) })) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "(param_3[0xa4] == (undefined *)0x106)" ( (binary_expression "param_3[0xa4] == (undefined *)0x106" (subscript_expression "param_3[0xa4]" identifier [ number_literal ]) == (cast_expression "(undefined *)0x106" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "local_64 = (int)param_3[0xa4];" (assignment_expression "local_64 = (int)param_3[0xa4]" identifier = (cast_expression "(int)param_3[0xa4]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa4]" identifier [ number_literal ]))) ;) })) (if_statement "if (local_64 != -1) {\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }" if (parenthesized_expression "(local_64 != -1)" ( (binary_expression "local_64 != -1" identifier != number_literal) )) (compound_statement "{\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }" { (do_statement "do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );" do (compound_statement "{\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    }" { (expression_statement "*(undefined ***)(puVar11 + -4) = param_3;" (assignment_expression "*(undefined ***)(puVar11 + -4) = param_3" (pointer_expression "*(undefined ***)(puVar11 + -4)" * (cast_expression "(undefined ***)(puVar11 + -4)" ( (type_descriptor "undefined ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(puVar11 + -4)" ( (binary_expression "puVar11 + -4" identifier + number_literal) )))) = identifier) ;) (expression_statement "puVar10 = puVar11 + -8;" (assignment_expression "puVar10 = puVar11 + -8" identifier = (binary_expression "puVar11 + -8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar11 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar11 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar11 + -8)" * (cast_expression "(undefined4 *)(puVar11 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + -8)" ( (binary_expression "puVar11 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);" (assignment_expression "pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e)" identifier = (cast_expression "(char *)(*(int *)(puVar11 + 0xc) + -0xcb6e)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar11 + 0xc) + -0xcb6e)" ( (binary_expression "*(int *)(puVar11 + 0xc) + -0xcb6e" (pointer_expression "*(int *)(puVar11 + 0xc)" * (cast_expression "(int *)(puVar11 + 0xc)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar11 + 0xc)" ( (binary_expression "puVar11 + 0xc" identifier + number_literal) )))) + number_literal) )))) ;) (labeled_statement "LAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;" statement_identifier : (expression_statement "*(char **)(puVar10 + -4) = pcVar6;" (assignment_expression "*(char **)(puVar10 + -4) = pcVar6" (pointer_expression "*(char **)(puVar10 + -4)" * (cast_expression "(char **)(puVar10 + -4)" ( (type_descriptor "char **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + -4)" ( (binary_expression "puVar10 + -4" identifier + number_literal) )))) = identifier) ;)) (expression_statement "puVar11 = puVar10 + -8;" (assignment_expression "puVar11 = puVar10 + -8" identifier = (binary_expression "puVar10 + -8" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(puVar10 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = 0x26c2e;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = 0x26c2e" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "uVar3 = dcgettext();" (assignment_expression "uVar3 = dcgettext()" identifier = (call_expression "dcgettext()" identifier (argument_list "()" ( )))) ;) (expression_statement "*(undefined4 *)(puVar10 + -8) = uVar3;" (assignment_expression "*(undefined4 *)(puVar10 + -8) = uVar3" (pointer_expression "*(undefined4 *)(puVar10 + -8)" * (cast_expression "(undefined4 *)(puVar10 + -8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -8)" ( (binary_expression "puVar10 + -8" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = 0x26c36;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = 0x26c36" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" * (cast_expression "(undefined4 *)(puVar10 + -0xc)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar10 + -0xc)" ( (binary_expression "puVar10 + -0xc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "FUN_000143e0();" (call_expression "FUN_000143e0()" identifier (argument_list "()" ( ))) ;) }) while (parenthesized_expression "( true )" ( true )) ;) })) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = (int)param_3[0xab];" (assignment_expression "iVar7 = (int)param_3[0xab]" identifier = (cast_expression "(int)param_3[0xab]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xab]" identifier [ number_literal ]))) ;) (if_statement "if (iVar7 != 0) {\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }" { (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" identifier (argument_list "()" ( ))) ;) (expression_statement "iVar7 = (int)param_3[0xab];" (assignment_expression "iVar7 = (int)param_3[0xab]" identifier = (cast_expression "(int)param_3[0xab]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xab]" identifier [ number_literal ]))) ;) })) (expression_statement "param_3[0xab] = (undefined *)(iVar7 + 1);" (assignment_expression "param_3[0xab] = (undefined *)(iVar7 + 1)" (subscript_expression "param_3[0xab]" identifier [ number_literal ]) = (cast_expression "(undefined *)(iVar7 + 1)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + 1)" ( (binary_expression "iVar7 + 1" identifier + number_literal) )))) ;) (expression_statement "local_74 = (undefined4 *)FUN_0002efa0(0x834);" (assignment_expression "local_74 = (undefined4 *)FUN_0002efa0(0x834)" identifier = (cast_expression "(undefined4 *)FUN_0002efa0(0x834)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002efa0(0x834)" identifier (argument_list "(0x834)" ( number_literal ))))) ;) (expression_statement "puVar12 = param_3;" (assignment_expression "puVar12 = param_3" identifier = identifier) ;) (expression_statement "puVar16 = local_74;" (assignment_expression "puVar16 = local_74" identifier = identifier) ;) (for_statement "for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }" for ( (assignment_expression "iVar7 = 0x20d" identifier = number_literal) ; (binary_expression "iVar7 != 0" identifier != number_literal) ; (assignment_expression "iVar7 = iVar7 + -1" identifier = (binary_expression "iVar7 + -1" identifier + number_literal)) ) (compound_statement "{\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }" { (expression_statement "*puVar16 = *puVar12;" (assignment_expression "*puVar16 = *puVar12" (pointer_expression "*puVar16" * identifier) = (pointer_expression "*puVar12" * identifier)) ;) (expression_statement "puVar12 = puVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar12 = puVar12 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar12 + (uint)bVar18 * -2 + 1" (binary_expression "puVar12 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" identifier = (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" identifier + (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" ( (type_descriptor "uint" type_identifier) ) identifier) * number_literal)) + number_literal)) ;) })) (expression_statement "*(undefined1 *)(local_74 + 0xcc) = 0;" (assignment_expression "*(undefined1 *)(local_74 + 0xcc) = 0" (pointer_expression "*(undefined1 *)(local_74 + 0xcc)" * (cast_expression "(undefined1 *)(local_74 + 0xcc)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74 + 0xcc)" ( (binary_expression "local_74 + 0xcc" identifier + number_literal) )))) = number_literal) ;) (expression_statement "local_74[0xb4] = 0;" (assignment_expression "local_74[0xb4] = 0" (subscript_expression "local_74[0xb4]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xb5] = 0;" (assignment_expression "local_74[0xb5] = 0" (subscript_expression "local_74[0xb5]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_50 = local_70[0] + -0x98c7;" (assignment_expression "local_50 = local_70[0] + -0x98c7" identifier = (binary_expression "local_70[0] + -0x98c7" (subscript_expression "local_70[0]" identifier [ number_literal ]) + number_literal)) ;) (expression_statement "local_74[0xca] = local_50;" (assignment_expression "local_74[0xca] = local_50" (subscript_expression "local_74[0xca]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_74[0xb6] = 0;" (assignment_expression "local_74[0xb6] = 0" (subscript_expression "local_74[0xb6]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xb7] = 0;" (assignment_expression "local_74[0xb7] = 0" (subscript_expression "local_74[0xb7]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xbb] = 0;" (assignment_expression "local_74[0xbb] = 0" (subscript_expression "local_74[0xbb]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xbc] = 0;" (assignment_expression "local_74[0xbc] = 0" (subscript_expression "local_74[0xbc]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xb9] = 0;" (assignment_expression "local_74[0xb9] = 0" (subscript_expression "local_74[0xb9]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xbd] = 0;" (assignment_expression "local_74[0xbd] = 0" (subscript_expression "local_74[0xbd]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "iVar7 = local_74[0x94] << 5;" (assignment_expression "iVar7 = local_74[0x94] << 5" identifier = (binary_expression "local_74[0x94] << 5" (subscript_expression "local_74[0x94]" identifier [ number_literal ]) << number_literal)) ;) (expression_statement "local_74[0xc0] = 0;" (assignment_expression "local_74[0xc0] = 0" (subscript_expression "local_74[0xc0]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xc1] = 0;" (assignment_expression "local_74[0xc1] = 0" (subscript_expression "local_74[0xc1]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xc2] = 0;" (assignment_expression "local_74[0xc2] = 0" (subscript_expression "local_74[0xc2]" identifier [ number_literal ]) = number_literal) ;) (expression_statement "local_74[0xc3] = 0;" (assignment_expression "local_74[0xc3] = 0" (subscript_expression "local_74[0xc3]" identifier [ number_literal ]) = number_literal) ;) (if_statement "if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {\nLAB_00026c0e:\n                    \n    FUN_0002f1c0();\n  }" if (parenthesized_expression "((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0))" ( (binary_expression "(iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)" (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) || (parenthesized_expression "((uint)local_74[0x94] >> 0x1b != 0)" ( (binary_expression "(uint)local_74[0x94] >> 0x1b != 0" (binary_expression "(uint)local_74[0x94] >> 0x1b" (cast_expression "(uint)local_74[0x94]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_74[0x94]" identifier [ number_literal ])) >> number_literal) != number_literal) ))) )) (compound_statement "{\nLAB_00026c0e:\n                    \n    FUN_0002f1c0();\n  }" { (labeled_statement "LAB_00026c0e:\n                    \n    FUN_0002f1c0();" statement_identifier : (expression_statement "FUN_0002f1c0();" (call_expression "FUN_0002f1c0()" identifier (argument_list "()" ( ))) ;)) })) (expression_statement "__dest = (void *)FUN_0002efa0(iVar7);" (assignment_expression "__dest = (void *)FUN_0002efa0(iVar7)" identifier = (cast_expression "(void *)FUN_0002efa0(iVar7)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (call_expression "FUN_0002efa0(iVar7)" identifier (argument_list "(iVar7)" ( identifier ))))) ;) (expression_statement "iVar7 = (int)param_3[0x93];" (assignment_expression "iVar7 = (int)param_3[0x93]" identifier = (cast_expression "(int)param_3[0x93]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0x93]" identifier [ number_literal ]))) ;) (expression_statement "local_74[0x92] = __dest;" (assignment_expression "local_74[0x92] = __dest" (subscript_expression "local_74[0x92]" identifier [ number_literal ]) = identifier) ;) (if_statement "if (iVar7 != 0) {\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }" { (expression_statement "memcpy(__dest,param_3[0x92],iVar7 << 5);" (call_expression "memcpy(__dest,param_3[0x92],iVar7 << 5)" identifier (argument_list "(__dest,param_3[0x92],iVar7 << 5)" ( identifier , (subscript_expression "param_3[0x92]" identifier [ number_literal ]) , (binary_expression "iVar7 << 5" identifier << number_literal) ))) ;) })) (expression_statement "iVar7 = (int)param_3[0xa7] << 3;" (assignment_expression "iVar7 = (int)param_3[0xa7] << 3" identifier = (binary_expression "(int)param_3[0xa7] << 3" (cast_expression "(int)param_3[0xa7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) << number_literal)) ;) (if_statement "if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;" if (parenthesized_expression "((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0))" ( (binary_expression "(iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)" (parenthesized_expression "(iVar7 < 0)" ( (binary_expression "iVar7 < 0" identifier < number_literal) )) || (parenthesized_expression "((uint)param_3[0xa7] >> 0x1d != 0)" ( (binary_expression "(uint)param_3[0xa7] >> 0x1d != 0" (binary_expression "(uint)param_3[0xa7] >> 0x1d" (cast_expression "(uint)param_3[0xa7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ])) >> number_literal) != number_literal) ))) )) (goto_statement "goto LAB_00026c0e;" goto statement_identifier ;)) (expression_statement "uVar3 = FUN_0002efa0(iVar7);" (assignment_expression "uVar3 = FUN_0002efa0(iVar7)" identifier = (call_expression "FUN_0002efa0(iVar7)" identifier (argument_list "(iVar7)" ( identifier )))) ;) (expression_statement "local_74[0xa6] = uVar3;" (assignment_expression "local_74[0xa6] = uVar3" (subscript_expression "local_74[0xa6]" identifier [ number_literal ]) = identifier) ;) (expression_statement "iVar7 = (int)param_3[0xa7];" (assignment_expression "iVar7 = (int)param_3[0xa7]" identifier = (cast_expression "(int)param_3[0xa7]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ]))) ;) (expression_statement "local_74[0xa8] = iVar7 * 2;" (assignment_expression "local_74[0xa8] = iVar7 * 2" (subscript_expression "local_74[0xa8]" identifier [ number_literal ]) = (binary_expression "iVar7 * 2" identifier * number_literal)) ;) (if_statement "if (iVar7 == 0) {\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }\n  else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }" if (parenthesized_expression "(iVar7 == 0)" ( (binary_expression "iVar7 == 0" identifier == number_literal) )) (compound_statement "{\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }" { (expression_statement "local_74[0xa7] = 0;" (assignment_expression "local_74[0xa7] = 0" (subscript_expression "local_74[0xa7]" identifier [ number_literal ]) = number_literal) ;) (labeled_statement "LAB_00026a5d:\n    puVar12 = local_74;" statement_identifier : (expression_statement "puVar12 = local_74;" (assignment_expression "puVar12 = local_74" identifier = identifier) ;)) (expression_statement "FUN_00026290(local_74);" (call_expression "FUN_00026290(local_74)" identifier (argument_list "(local_74)" ( identifier ))) ;) (expression_statement "free(puVar12);" (call_expression "free(puVar12)" identifier (argument_list "(puVar12)" ( identifier ))) ;) (expression_statement "uVar5 = (uint)param_3[0xa7];" (assignment_expression "uVar5 = (uint)param_3[0xa7]" identifier = (cast_expression "(uint)param_3[0xa7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "param_3[0xa7]" identifier [ number_literal ]))) ;) }) (else_clause "else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }" else (compound_statement "{\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }" { (expression_statement "local_60 = (int)param_3[0xa6];" (assignment_expression "local_60 = (int)param_3[0xa6]" identifier = (cast_expression "(int)param_3[0xa6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa6]" identifier [ number_literal ]))) ;) (expression_statement "local_5a = '\0';" (assignment_expression "local_5a = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "local_70[1] = param_3;" (assignment_expression "local_70[1] = param_3" (subscript_expression "local_70[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "local_58 = &local_40;" (assignment_expression "local_58 = &local_40" identifier = (pointer_expression "&local_40" & identifier)) ;) (expression_statement "local_5b = '\0';" (assignment_expression "local_5b = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" identifier = number_literal) ;) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);" do (compound_statement "{\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    }" { (expression_statement "puVar12 = local_74;" (assignment_expression "puVar12 = local_74" identifier = identifier) ;) (expression_statement "local_68 = uVar9 + 1;" (assignment_expression "local_68 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "iVar13 = iVar7 * 4;" (assignment_expression "iVar13 = iVar7 * 4" identifier = (binary_expression "iVar7 * 4" identifier * number_literal)) ;) (expression_statement "iVar8 = iVar7 + 1;" (assignment_expression "iVar8 = iVar7 + 1" identifier = (binary_expression "iVar7 + 1" identifier + number_literal)) ;) (expression_statement "uVar5 = *(uint *)(local_60 + uVar9 * 4);" (assignment_expression "uVar5 = *(uint *)(local_60 + uVar9 * 4)" identifier = (pointer_expression "*(uint *)(local_60 + uVar9 * 4)" * (cast_expression "(uint *)(local_60 + uVar9 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_60 + uVar9 * 4)" ( (binary_expression "local_60 + uVar9 * 4" identifier + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (expression_statement "uVar2 = local_68;" (assignment_expression "uVar2 = local_68" identifier = identifier) ;) (if_statement "if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }" if (parenthesized_expression "(uVar5 - 0x10a < 10)" ( (binary_expression "uVar5 - 0x10a < 10" (binary_expression "uVar5 - 0x10a" identifier - number_literal) < number_literal) )) (compound_statement "{\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }" { (expression_statement "uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);" (assignment_expression "uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f)" identifier = (binary_expression "1 << ((byte)(uVar5 - 0x10a) & 0x1f)" number_literal << (parenthesized_expression "((byte)(uVar5 - 0x10a) & 0x1f)" ( (binary_expression "(byte)(uVar5 - 0x10a) & 0x1f" (call_expression "(byte)(uVar5 - 0x10a)" (parenthesized_expression "(byte)" ( identifier )) (argument_list "(uVar5 - 0x10a)" ( (binary_expression "uVar5 - 0x10a" identifier - number_literal) ))) & number_literal) )))) ;) (if_statement "if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }" if (parenthesized_expression "((uVar17 & 0x301) == 0)" ( (binary_expression "(uVar17 & 0x301) == 0" (parenthesized_expression "(uVar17 & 0x301)" ( (binary_expression "uVar17 & 0x301" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }" { (if_statement "if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }" if (parenthesized_expression "(((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0'))" ( (binary_expression "((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')" (parenthesized_expression "((uVar17 & 0xf0) == 0)" ( (binary_expression "(uVar17 & 0xf0) == 0" (parenthesized_expression "(uVar17 & 0xf0)" ( (binary_expression "uVar17 & 0xf0" identifier & number_literal) )) == number_literal) )) || (parenthesized_expression "(*(char *)(local_70[1] + 0xcc) == '\0')" ( (binary_expression "*(char *)(local_70[1] + 0xcc) == '\0'" (pointer_expression "*(char *)(local_70[1] + 0xcc)" * (cast_expression "(char *)(local_70[1] + 0xcc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70[1] + 0xcc)" ( (binary_expression "local_70[1] + 0xcc" (subscript_expression "local_70[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) (compound_statement "{\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }" { (expression_statement "*(uint *)(iVar13 + local_74[0xa6]) = uVar5;" (assignment_expression "*(uint *)(iVar13 + local_74[0xa6]) = uVar5" (pointer_expression "*(uint *)(iVar13 + local_74[0xa6])" * (cast_expression "(uint *)(iVar13 + local_74[0xa6])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + local_74[0xa6])" ( (binary_expression "iVar13 + local_74[0xa6]" identifier + (subscript_expression "local_74[0xa6]" identifier [ number_literal ])) )))) = identifier) ;) }) (else_clause "else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }" else (compound_statement "{\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }" { (expression_statement "*(uint *)(iVar13 + local_74[0xa6]) = 0x100;" (assignment_expression "*(uint *)(iVar13 + local_74[0xa6]) = 0x100" (pointer_expression "*(uint *)(iVar13 + local_74[0xa6])" * (cast_expression "(uint *)(iVar13 + local_74[0xa6])" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar13 + local_74[0xa6])" ( (binary_expression "iVar13 + local_74[0xa6]" identifier + (subscript_expression "local_74[0xa6]" identifier [ number_literal ])) )))) = number_literal) ;) }))) }) (else_clause "else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }" else (compound_statement "{\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }" { (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_3c = 0xffffffff;" (assignment_expression "local_3c = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_38 = 0xffffffff;" (assignment_expression "local_38 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_30 = 0xffffffff;" (assignment_expression "local_30 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_2c = 0xffffffff;" (assignment_expression "local_2c = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_28 = 0xffffffff;" (assignment_expression "local_28 = 0xffffffff" identifier = number_literal) ;) (expression_statement "local_24 = 0xffffffff;" (assignment_expression "local_24 = 0xffffffff" identifier = number_literal) ;) (expression_statement "iVar4 = FUN_00020370();" (assignment_expression "iVar4 = FUN_00020370()" identifier = (call_expression "FUN_00020370()" identifier (argument_list "()" ( )))) ;) (expression_statement "iVar1 = puVar12[0xa6];" (assignment_expression "iVar1 = puVar12[0xa6]" identifier = (subscript_expression "puVar12[0xa6]" identifier [ number_literal ])) ;) (expression_statement "iVar8 = iVar7 + 2;" (assignment_expression "iVar8 = iVar7 + 2" identifier = (binary_expression "iVar7 + 2" identifier + number_literal)) ;) (expression_statement "*(int *)(iVar1 + iVar13) = iVar4 + 0x114;" (assignment_expression "*(int *)(iVar1 + iVar13) = iVar4 + 0x114" (pointer_expression "*(int *)(iVar1 + iVar13)" * (cast_expression "(int *)(iVar1 + iVar13)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + iVar13)" ( (binary_expression "iVar1 + iVar13" identifier + identifier) )))) = (binary_expression "iVar4 + 0x114" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;" (assignment_expression "*(undefined4 *)(iVar1 + 4 + iVar13) = 0x102" (pointer_expression "*(undefined4 *)(iVar1 + 4 + iVar13)" * (cast_expression "(undefined4 *)(iVar1 + 4 + iVar13)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar1 + 4 + iVar13)" ( (binary_expression "iVar1 + 4 + iVar13" (binary_expression "iVar1 + 4" identifier + number_literal) + identifier) )))) = number_literal) ;) (expression_statement "local_60 = (int)local_70[1][0xa6];" (assignment_expression "local_60 = (int)local_70[1][0xa6]" identifier = (cast_expression "(int)local_70[1][0xa6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "local_70[1][0xa6]" (subscript_expression "local_70[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "local_5a = local_59;" (assignment_expression "local_5a = local_59" identifier = identifier) ;) (expression_statement "uVar2 = uVar9 + 2;" (assignment_expression "uVar2 = uVar9 + 2" identifier = (binary_expression "uVar9 + 2" identifier + number_literal)) ;) (if_statement "if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }" if (parenthesized_expression "(2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U)" ( (binary_expression "2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U" number_literal < (binary_expression "*(int *)(local_60 + 4 + uVar9 * 4) - 0x101U" (pointer_expression "*(int *)(local_60 + 4 + uVar9 * 4)" * (cast_expression "(int *)(local_60 + 4 + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_60 + 4 + uVar9 * 4)" ( (binary_expression "local_60 + 4 + uVar9 * 4" (binary_expression "local_60 + 4" identifier + number_literal) + (binary_expression "uVar9 * 4" identifier * number_literal)) )))) - number_literal)) )) (compound_statement "{\n            uVar2 = local_68;\n          }" { (expression_statement "uVar2 = local_68;" (assignment_expression "uVar2 = local_68" identifier = identifier) ;) })) }))) }) (else_clause "else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }" else (compound_statement "{\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }" { (expression_statement "*(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;" (assignment_expression "*(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5" (pointer_expression "*(uint *)(local_74[0xa6] + iVar7 * 4)" * (cast_expression "(uint *)(local_74[0xa6] + iVar7 * 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_74[0xa6] + iVar7 * 4)" ( (binary_expression "local_74[0xa6] + iVar7 * 4" (subscript_expression "local_74[0xa6]" identifier [ number_literal ]) + (binary_expression "iVar7 * 4" identifier * number_literal)) )))) = identifier) ;) (if_statement "if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }" if (parenthesized_expression "(uVar5 < 0x100 || 0x113 < (int)uVar5)" ( (binary_expression "uVar5 < 0x100 || 0x113 < (int)uVar5" (binary_expression "uVar5 < 0x100" identifier < number_literal) || (binary_expression "0x113 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }" { (expression_statement "local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;" (assignment_expression "local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5" identifier = (binary_expression "uVar5 < 0x100 || 0x113 < (int)uVar5" (binary_expression "uVar5 < 0x100" identifier < number_literal) || (binary_expression "0x113 < (int)uVar5" number_literal < (cast_expression "(int)uVar5" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) }))) (expression_statement "local_68 = uVar2;" (assignment_expression "local_68 = uVar2" identifier = identifier) ;) (expression_statement "uVar5 = (uint)local_70[1][0xa7];" (assignment_expression "uVar5 = (uint)local_70[1][0xa7]" identifier = (cast_expression "(uint)local_70[1][0xa7]" ( (type_descriptor "uint" type_identifier) ) (subscript_expression "local_70[1][0xa7]" (subscript_expression "local_70[1]" identifier [ number_literal ]) [ number_literal ]))) ;) (expression_statement "iVar7 = iVar8;" (assignment_expression "iVar7 = iVar8" identifier = identifier) ;) (expression_statement "uVar9 = local_68;" (assignment_expression "uVar9 = local_68" identifier = identifier) ;) }) while (parenthesized_expression "(local_68 < uVar5)" ( (binary_expression "local_68 < uVar5" identifier < identifier) )) ;) (expression_statement "local_74[0xa7] = iVar8;" (assignment_expression "local_74[0xa7] = iVar8" (subscript_expression "local_74[0xa7]" identifier [ number_literal ]) = identifier) ;) (expression_statement "param_3 = local_70[1];" (assignment_expression "param_3 = local_70[1]" identifier = (subscript_expression "local_70[1]" identifier [ number_literal ])) ;) (if_statement "if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;" if (parenthesized_expression "((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))" ( (binary_expression "(local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0')))" (parenthesized_expression "(local_5b == '\0')" ( (binary_expression "local_5b == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) || (parenthesized_expression "((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0')))" ( (parenthesized_expression "(local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))" ( (binary_expression "local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0')" (binary_expression "local_5a == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) && (parenthesized_expression "(*(char *)(local_70[1] + 0xcc) == '\0')" ( (binary_expression "*(char *)(local_70[1] + 0xcc) == '\0'" (pointer_expression "*(char *)(local_70[1] + 0xcc)" * (cast_expression "(char *)(local_70[1] + 0xcc)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70[1] + 0xcc)" ( (binary_expression "local_70[1] + 0xcc" (subscript_expression "local_70[1]" identifier [ number_literal ]) + number_literal) )))) == (char_literal "'\0'" ' escape_sequence ')) ))) )) ))) )) (goto_statement "goto LAB_00026a5d;" goto statement_identifier ;)) (expression_statement "local_70[1][0xb5] = (undefined *)local_74;" (assignment_expression "local_70[1][0xb5] = (undefined *)local_74" (subscript_expression "local_70[1][0xb5]" (subscript_expression "local_70[1]" identifier [ number_literal ]) [ number_literal ]) = (cast_expression "(undefined *)local_74" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) }))) (if_statement "if (uVar5 == 0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }\n  else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }" if (parenthesized_expression "(uVar5 == 0)" ( (binary_expression "uVar5 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }" { (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;" 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_00026a37;" goto statement_identifier ;)) (labeled_statement "LAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }" statement_identifier : (if_statement "if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }" if (parenthesized_expression "(param_3[0xb5] != (undefined *)0x0)" ( (binary_expression "param_3[0xb5] != (undefined *)0x0" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }" { (expression_statement "FUN_00026290(param_3[0xb5]);" (call_expression "FUN_00026290(param_3[0xb5])" identifier (argument_list "(param_3[0xb5])" ( (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) ))) ;) (expression_statement "free(param_3[0xb5]);" (call_expression "free(param_3[0xb5])" identifier (argument_list "(param_3[0xb5])" ( (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) ))) ;) (expression_statement "param_3[0xb5] = (undefined *)0x0;" (assignment_expression "param_3[0xb5] = (undefined *)0x0" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) }) (else_clause "else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }" else (compound_statement "{\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }" { (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);" do (compound_statement "{\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    }" { (expression_statement "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);" (assignment_expression "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4)" identifier = (pointer_expression "*(int *)((int)param_3[0xa6] + uVar9 * 4)" * (cast_expression "(int *)((int)param_3[0xa6] + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3[0xa6] + uVar9 * 4)" ( (binary_expression "(int)param_3[0xa6] + uVar9 * 4" (cast_expression "(int)param_3[0xa6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa6]" identifier [ number_literal ])) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (if_statement "if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }" if (parenthesized_expression "(0x10d < iVar7)" ( (binary_expression "0x10d < iVar7" number_literal < identifier) )) (compound_statement "{\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }" { (if_statement "if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" if (parenthesized_expression "(iVar7 < 0x112)" ( (binary_expression "iVar7 < 0x112" identifier < number_literal) )) (compound_statement "{\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }" { (if_statement "if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;" 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_000269ad;" goto statement_identifier ;)) }) (else_clause "else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" else (if_statement "if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" if (parenthesized_expression "(iVar7 < 0x114)" ( (binary_expression "iVar7 < 0x114" identifier < number_literal) )) (compound_statement "{\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" { (labeled_statement "LAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);" statement_identifier : (expression_statement "param_3[0xca] = (undefined *)(local_70[0] + -0xa223);" (assignment_expression "param_3[0xca] = (undefined *)(local_70[0] + -0xa223)" (subscript_expression "param_3[0xca]" identifier [ number_literal ]) = (cast_expression "(undefined *)(local_70[0] + -0xa223)" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_70[0] + -0xa223)" ( (binary_expression "local_70[0] + -0xa223" (subscript_expression "local_70[0]" identifier [ number_literal ]) + number_literal) )))) ;)) (goto_statement "goto LAB_000269bd;" goto statement_identifier ;) })))) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(uVar9 != uVar5)" ( (binary_expression "uVar9 != uVar5" identifier != identifier) )) ;) (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;" 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_00026a37;" goto statement_identifier ;)) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" identifier = number_literal) ;) (expression_statement "cVar14 = '\0';" (assignment_expression "cVar14 = '\0'" identifier = (char_literal "'\0'" ' escape_sequence ')) ;) (do_statement "do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);" do (compound_statement "{\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    }" { (expression_statement "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);" (assignment_expression "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4)" identifier = (pointer_expression "*(int *)((int)param_3[0xa6] + uVar9 * 4)" * (cast_expression "(int *)((int)param_3[0xa6] + uVar9 * 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)param_3[0xa6] + uVar9 * 4)" ( (binary_expression "(int)param_3[0xa6] + uVar9 * 4" (cast_expression "(int)param_3[0xa6]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xa6]" identifier [ number_literal ])) + (binary_expression "uVar9 * 4" identifier * number_literal)) ))))) ;) (expression_statement "cVar15 = *(char *)((int)param_3 + 0x331);" (assignment_expression "cVar15 = *(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 (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }" if (parenthesized_expression "(iVar7 != 0x112)" ( (binary_expression "iVar7 != 0x112" identifier != number_literal) )) (compound_statement "{\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }" { (if_statement "if (iVar7 == 0x113) goto LAB_00026a37;" if (parenthesized_expression "(iVar7 == 0x113)" ( (binary_expression "iVar7 == 0x113" identifier == number_literal) )) (goto_statement "goto LAB_00026a37;" goto statement_identifier ;)) (expression_statement "cVar15 = cVar14;" (assignment_expression "cVar15 = cVar14" identifier = identifier) ;) (if_statement "if (iVar7 == 0x10a) {\n                    \n          abort();\n        }" if (parenthesized_expression "(iVar7 == 0x10a)" ( (binary_expression "iVar7 == 0x10a" identifier == number_literal) )) (compound_statement "{\n                    \n          abort();\n        }" { (expression_statement "abort();" (call_expression "abort()" identifier (argument_list "()" ( ))) ;) })) })) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" identifier = (binary_expression "uVar9 + 1" identifier + number_literal)) ;) (expression_statement "cVar14 = cVar15;" (assignment_expression "cVar14 = cVar15" identifier = identifier) ;) }) while (parenthesized_expression "(uVar9 != uVar5)" ( (binary_expression "uVar9 != uVar5" identifier != identifier) )) ;) (if_statement "if (cVar15 == '\0') goto LAB_00026bd5;" if (parenthesized_expression "(cVar15 == '\0')" ( (binary_expression "cVar15 == '\0'" identifier == (char_literal "'\0'" ' escape_sequence ')) )) (goto_statement "goto LAB_00026bd5;" goto statement_identifier ;)) }))) (expression_statement "free(param_3[0xb4]);" (call_expression "free(param_3[0xb4])" identifier (argument_list "(param_3[0xb4])" ( (subscript_expression "param_3[0xb4]" identifier [ number_literal ]) ))) ;) (expression_statement "free(param_3[0xa0]);" (call_expression "free(param_3[0xa0])" identifier (argument_list "(param_3[0xa0])" ( (subscript_expression "param_3[0xa0]" identifier [ number_literal ]) ))) ;) (expression_statement "free(param_3[0xc5]);" (call_expression "free(param_3[0xc5])" identifier (argument_list "(param_3[0xc5])" ( (subscript_expression "param_3[0xc5]" identifier [ number_literal ]) ))) ;) (expression_statement "iVar7 = (int)param_3[200];" (assignment_expression "iVar7 = (int)param_3[200]" identifier = (cast_expression "(int)param_3[200]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[200]" identifier [ number_literal ]))) ;) (if_statement "if (iVar7 != 0) {\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }" if (parenthesized_expression "(iVar7 != 0)" ( (binary_expression "iVar7 != 0" identifier != number_literal) )) (compound_statement "{\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }" { (expression_statement "iVar8 = local_64;" (assignment_expression "iVar8 = local_64" identifier = identifier) ;) (if_statement "if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }" if (parenthesized_expression "(-1 < (int)param_3[0xbd])" ( (binary_expression "-1 < (int)param_3[0xbd]" number_literal < (cast_expression "(int)param_3[0xbd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xbd]" identifier [ number_literal ]))) )) (compound_statement "{\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }" { (do_statement "do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);" do (compound_statement "{\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      }" { (expression_statement "iVar13 = iVar8 + 1;" (assignment_expression "iVar13 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) (expression_statement "free(*(void **)(iVar7 + iVar8 * 4));" (call_expression "free(*(void **)(iVar7 + iVar8 * 4))" identifier (argument_list "(*(void **)(iVar7 + iVar8 * 4))" ( (pointer_expression "*(void **)(iVar7 + iVar8 * 4)" * (cast_expression "(void **)(iVar7 + iVar8 * 4)" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar7 + iVar8 * 4)" ( (binary_expression "iVar7 + iVar8 * 4" identifier + (binary_expression "iVar8 * 4" identifier * number_literal)) )))) ))) ;) (expression_statement "iVar7 = (int)param_3[200];" (assignment_expression "iVar7 = (int)param_3[200]" identifier = (cast_expression "(int)param_3[200]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[200]" identifier [ number_literal ]))) ;) (expression_statement "iVar8 = iVar13;" (assignment_expression "iVar8 = iVar13" identifier = identifier) ;) }) while (parenthesized_expression "(iVar13 < (int)param_3[0xbd])" ( (binary_expression "iVar13 < (int)param_3[0xbd]" identifier < (cast_expression "(int)param_3[0xbd]" ( (type_descriptor "int" primitive_type) ) (subscript_expression "param_3[0xbd]" identifier [ number_literal ]))) )) ;) })) (expression_statement "free((void *)(iVar7 + -8));" (call_expression "free((void *)(iVar7 + -8))" identifier (argument_list "((void *)(iVar7 + -8))" ( (cast_expression "(void *)(iVar7 + -8)" ( (type_descriptor "void *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar7 + -8)" ( (binary_expression "iVar7 + -8" identifier + number_literal) ))) ))) ;) })) (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 "*(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 "param_3[0xca] = (undefined *)local_50;" (assignment_expression "param_3[0xca] = (undefined *)local_50" (subscript_expression "param_3[0xca]" identifier [ number_literal ]) = (cast_expression "(undefined *)local_50" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (labeled_statement "LAB_00026a37:\n  FUN_00022280();" statement_identifier : (expression_statement "FUN_00022280();" (call_expression "FUN_00022280()" identifier (argument_list "()" ( ))) ;)) (labeled_statement "LAB_000269bd:\n  if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }" statement_identifier : (if_statement "if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }" if (parenthesized_expression "(param_3[0xb5] != (undefined *)0x0)" ( (binary_expression "param_3[0xb5] != (undefined *)0x0" (subscript_expression "param_3[0xb5]" identifier [ number_literal ]) != (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\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_00022280();" (call_expression "FUN_00022280()" identifier (argument_list "()" ( ))) ;) }))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" if (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" ( (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" identifier == (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" * (cast_expression "(int *)(in_GS_OFFSET + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(in_GS_OFFSET + 0x14)" ( (binary_expression "in_GS_OFFSET + 0x14" identifier + number_literal) ))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "FUN_00038830();" (call_expression "FUN_00038830()" identifier (argument_list "()" ( ))) ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * (pointer_declarator * IDENT))) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE 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 IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * (array_declarator IDENT [ LIT ]))) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (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 ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (string_literal " string_content ")) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) )) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) == LIT) )) (break_statement break ;)) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (while_statement while (parenthesized_expression ( (parenthesized_expression ( (binary_expression (binary_expression (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) & LIT) )) != LIT) && (parenthesized_expression ( (binary_expression LIT < IDENT) ))) )) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) while (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (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) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;)) (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) )))) = 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 = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) }) while (parenthesized_expression ( BOOL )) ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( LIT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( (assignment_expression IDENT = LIT) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) * LIT)) + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (binary_expression (cast_expression ( (type_descriptor TYPE) ) 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 (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (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 = (binary_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) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) != LIT) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT << LIT) ))) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) << LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT < LIT) )) || (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) >> LIT) != LIT) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT * LIT)) ;) (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 (assignment_expression IDENT = IDENT) ;)) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (char_literal ' escape_sequence ')) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT * LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - LIT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression LIT << (parenthesized_expression ( (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT - LIT) ))) & LIT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT & LIT) )) == LIT) )) || (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) )))) = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) )))) = LIT) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ 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 + IDENT) )))) = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) + (binary_expression IDENT * LIT)) )))) - LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) }) (else_clause else (compound_statement { (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) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT < LIT) || (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT < LIT) || (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ;) })) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < IDENT) )) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == (char_literal ' escape_sequence ')) )) || (parenthesized_expression ( (parenthesized_expression ( (binary_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 (subscript_expression IDENT [ LIT ]) + LIT) )))) == (char_literal ' escape_sequence ')) ))) )) ))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression (subscript_expression IDENT [ LIT ]) [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == 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 ]) != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) + (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 (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 ;)) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) )))) ;)) (goto_statement goto statement_identifier ;) })))) })) (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 = 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 (cast_expression ( (type_descriptor TYPE) ) (subscript_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) ))))) ;) (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 IDENT (argument_list ( ))) ;) })) })) (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 ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + (binary_expression IDENT * LIT)) )))) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) ))) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = 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 (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (call_expression IDENT (argument_list ( ))) ;)) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != (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 ( ))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (return_statement return ;) })) (expression_statement (call_expression IDENT (argument_list ( ))) ;) })))
(function_definition "void FUN_000264c0(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)\n\n{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  void *__dest;\n  int iVar4;\n  uint uVar5;\n  char *pcVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  char cVar14;\n  char cVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  undefined4 uStackY_90;\n  undefined4 uStack_80;\n  undefined1 auStack_7c [8];\n  undefined4 *local_74;\n  undefined **local_70 [2];\n  uint local_68;\n  int local_64;\n  int local_60;\n  char local_5b;\n  char local_5a;\n  char local_59;\n  undefined4 *local_58;\n  undefined4 local_54;\n  undefined **local_50;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  bVar18 = 0;\n  local_70[0] = &__DT_PLTGOT;\n  puVar11 = auStack_7c;\n  local_54 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  param_3[0x98] = (undefined *)0xffffffff;\n  param_3[0x96] = (undefined *)param_1;\n  param_3[0x97] = (undefined *)param_2;\n  local_59 = *(char *)(param_3 + 1);\n  if (local_59 == '\0') {\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }\n  if (param_3[0xab] == (undefined *)0x0) {\n    FUN_000221a0();\n  }\n  uVar3 = FUN_00024d90();\n  param_3[0xa4] = (undefined *)uVar3;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025a60();\n  local_64 = (int)param_3[0xa4];\n  if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }\n  if (local_64 == 0x106) {\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }\n  if (local_64 != -1) {\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }\n  FUN_000221a0();\n  FUN_000221a0();\n  iVar7 = (int)param_3[0xab];\n  if (iVar7 != 0) {\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }\n  param_3[0xab] = (undefined *)(iVar7 + 1);\n  local_74 = (undefined4 *)FUN_0002efa0(0x834);\n  puVar12 = param_3;\n  puVar16 = local_74;\n  for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }\n  *(undefined1 *)(local_74 + 0xcc) = 0;\n  local_74[0xb4] = 0;\n  local_74[0xb5] = 0;\n  local_50 = local_70[0] + -0x98c7;\n  local_74[0xca] = local_50;\n  local_74[0xb6] = 0;\n  local_74[0xb7] = 0;\n  local_74[0xbb] = 0;\n  local_74[0xbc] = 0;\n  local_74[0xb9] = 0;\n  local_74[0xbd] = 0;\n  iVar7 = local_74[0x94] << 5;\n  local_74[0xc0] = 0;\n  local_74[0xc1] = 0;\n  local_74[0xc2] = 0;\n  local_74[0xc3] = 0;\n  if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {\nLAB_00026c0e:\n                    \n    FUN_0002f1c0();\n  }\n  __dest = (void *)FUN_0002efa0(iVar7);\n  iVar7 = (int)param_3[0x93];\n  local_74[0x92] = __dest;\n  if (iVar7 != 0) {\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }\n  iVar7 = (int)param_3[0xa7] << 3;\n  if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;\n  uVar3 = FUN_0002efa0(iVar7);\n  local_74[0xa6] = uVar3;\n  iVar7 = (int)param_3[0xa7];\n  local_74[0xa8] = iVar7 * 2;\n  if (iVar7 == 0) {\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }\n  else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }\n  if (uVar5 == 0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }\n  else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }\n  free(param_3[0xb4]);\n  free(param_3[0xa0]);\n  free(param_3[0xc5]);\n  iVar7 = (int)param_3[200];\n  if (iVar7 != 0) {\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  *(undefined1 *)(param_3 + 0xac) = 1;\n  param_3[0xca] = (undefined *)local_50;\nLAB_00026a37:\n  FUN_00022280();\nLAB_000269bd:\n  if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00038830();\n}" (primitive_type "void") (function_declarator "FUN_000264c0(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)" (identifier "FUN_000264c0") (parameter_list "(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)" (( "(") (parameter_declaration "undefined4 param_1" (type_identifier "undefined4") (identifier "param_1")) (, ",") (parameter_declaration "undefined4 param_2" (type_identifier "undefined4") (identifier "param_2")) (, ",") (parameter_declaration "undefined **param_3" (type_identifier "undefined") (pointer_declarator "**param_3" (* "*") (pointer_declarator "*param_3" (* "*") (identifier "param_3")))) (, ",") (parameter_declaration "undefined4 param_4" (type_identifier "undefined4") (identifier "param_4")) () ")"))) (compound_statement "{\n  int iVar1;\n  uint uVar2;\n  undefined4 uVar3;\n  void *__dest;\n  int iVar4;\n  uint uVar5;\n  char *pcVar6;\n  int iVar7;\n  int iVar8;\n  uint uVar9;\n  undefined1 *puVar10;\n  undefined1 *puVar11;\n  undefined4 *puVar12;\n  int iVar13;\n  char cVar14;\n  char cVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  int in_GS_OFFSET;\n  byte bVar18;\n  undefined4 uStackY_90;\n  undefined4 uStack_80;\n  undefined1 auStack_7c [8];\n  undefined4 *local_74;\n  undefined **local_70 [2];\n  uint local_68;\n  int local_64;\n  int local_60;\n  char local_5b;\n  char local_5a;\n  char local_59;\n  undefined4 *local_58;\n  undefined4 local_54;\n  undefined **local_50;\n  undefined4 local_40;\n  undefined4 local_3c;\n  undefined4 local_38;\n  undefined4 local_34;\n  undefined4 local_30;\n  undefined4 local_2c;\n  undefined4 local_28;\n  undefined4 local_24;\n  int local_20;\n  \n  bVar18 = 0;\n  local_70[0] = &__DT_PLTGOT;\n  puVar11 = auStack_7c;\n  local_54 = param_4;\n  local_20 = *(int *)(in_GS_OFFSET + 0x14);\n  *(undefined1 *)(param_3 + 0xa3) = 1;\n  param_3[0x98] = (undefined *)0xffffffff;\n  param_3[0x96] = (undefined *)param_1;\n  param_3[0x97] = (undefined *)param_2;\n  local_59 = *(char *)(param_3 + 1);\n  if (local_59 == '\0') {\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }\n  if (param_3[0xab] == (undefined *)0x0) {\n    FUN_000221a0();\n  }\n  uVar3 = FUN_00024d90();\n  param_3[0xa4] = (undefined *)uVar3;\n  param_3[0xa5] = param_3[0xa9];\n  FUN_00025a60();\n  local_64 = (int)param_3[0xa4];\n  if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }\n  if (local_64 == 0x106) {\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }\n  if (local_64 != -1) {\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }\n  FUN_000221a0();\n  FUN_000221a0();\n  iVar7 = (int)param_3[0xab];\n  if (iVar7 != 0) {\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }\n  param_3[0xab] = (undefined *)(iVar7 + 1);\n  local_74 = (undefined4 *)FUN_0002efa0(0x834);\n  puVar12 = param_3;\n  puVar16 = local_74;\n  for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }\n  *(undefined1 *)(local_74 + 0xcc) = 0;\n  local_74[0xb4] = 0;\n  local_74[0xb5] = 0;\n  local_50 = local_70[0] + -0x98c7;\n  local_74[0xca] = local_50;\n  local_74[0xb6] = 0;\n  local_74[0xb7] = 0;\n  local_74[0xbb] = 0;\n  local_74[0xbc] = 0;\n  local_74[0xb9] = 0;\n  local_74[0xbd] = 0;\n  iVar7 = local_74[0x94] << 5;\n  local_74[0xc0] = 0;\n  local_74[0xc1] = 0;\n  local_74[0xc2] = 0;\n  local_74[0xc3] = 0;\n  if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {\nLAB_00026c0e:\n                    \n    FUN_0002f1c0();\n  }\n  __dest = (void *)FUN_0002efa0(iVar7);\n  iVar7 = (int)param_3[0x93];\n  local_74[0x92] = __dest;\n  if (iVar7 != 0) {\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }\n  iVar7 = (int)param_3[0xa7] << 3;\n  if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;\n  uVar3 = FUN_0002efa0(iVar7);\n  local_74[0xa6] = uVar3;\n  iVar7 = (int)param_3[0xa7];\n  local_74[0xa8] = iVar7 * 2;\n  if (iVar7 == 0) {\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }\n  else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }\n  if (uVar5 == 0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }\n  else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }\n  free(param_3[0xb4]);\n  free(param_3[0xa0]);\n  free(param_3[0xc5]);\n  iVar7 = (int)param_3[200];\n  if (iVar7 != 0) {\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }\n  *(undefined1 *)(param_3 + 0xcc) = 0;\n  *(undefined1 *)(param_3 + 0xac) = 1;\n  param_3[0xca] = (undefined *)local_50;\nLAB_00026a37:\n  FUN_00022280();\nLAB_000269bd:\n  if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }\n  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }\n                    \n  FUN_00038830();\n}" ({ "{") (declaration "int iVar1;" (primitive_type "int") (identifier "iVar1") (; ";")) (declaration "uint uVar2;" (type_identifier "uint") (identifier "uVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "void *__dest;" (primitive_type "void") (pointer_declarator "*__dest" (* "*") (identifier "__dest")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "char *pcVar6;" (primitive_type "char") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "int iVar7;" (primitive_type "int") (identifier "iVar7") (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "uint uVar9;" (type_identifier "uint") (identifier "uVar9") (; ";")) (declaration "undefined1 *puVar10;" (type_identifier "undefined1") (pointer_declarator "*puVar10" (* "*") (identifier "puVar10")) (; ";")) (declaration "undefined1 *puVar11;" (type_identifier "undefined1") (pointer_declarator "*puVar11" (* "*") (identifier "puVar11")) (; ";")) (declaration "undefined4 *puVar12;" (type_identifier "undefined4") (pointer_declarator "*puVar12" (* "*") (identifier "puVar12")) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "char cVar14;" (primitive_type "char") (identifier "cVar14") (; ";")) (declaration "char cVar15;" (primitive_type "char") (identifier "cVar15") (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "int in_GS_OFFSET;" (primitive_type "int") (identifier "in_GS_OFFSET") (; ";")) (declaration "byte bVar18;" (type_identifier "byte") (identifier "bVar18") (; ";")) (declaration "undefined4 uStackY_90;" (type_identifier "undefined4") (identifier "uStackY_90") (; ";")) (declaration "undefined4 uStack_80;" (type_identifier "undefined4") (identifier "uStack_80") (; ";")) (declaration "undefined1 auStack_7c [8];" (type_identifier "undefined1") (array_declarator "auStack_7c [8]" (identifier "auStack_7c") ([ "[") (number_literal "8") (] "]")) (; ";")) (declaration "undefined4 *local_74;" (type_identifier "undefined4") (pointer_declarator "*local_74" (* "*") (identifier "local_74")) (; ";")) (declaration "undefined **local_70 [2];" (type_identifier "undefined") (pointer_declarator "**local_70 [2]" (* "*") (pointer_declarator "*local_70 [2]" (* "*") (array_declarator "local_70 [2]" (identifier "local_70") ([ "[") (number_literal "2") (] "]")))) (; ";")) (declaration "uint local_68;" (type_identifier "uint") (identifier "local_68") (; ";")) (declaration "int local_64;" (primitive_type "int") (identifier "local_64") (; ";")) (declaration "int local_60;" (primitive_type "int") (identifier "local_60") (; ";")) (declaration "char local_5b;" (primitive_type "char") (identifier "local_5b") (; ";")) (declaration "char local_5a;" (primitive_type "char") (identifier "local_5a") (; ";")) (declaration "char local_59;" (primitive_type "char") (identifier "local_59") (; ";")) (declaration "undefined4 *local_58;" (type_identifier "undefined4") (pointer_declarator "*local_58" (* "*") (identifier "local_58")) (; ";")) (declaration "undefined4 local_54;" (type_identifier "undefined4") (identifier "local_54") (; ";")) (declaration "undefined **local_50;" (type_identifier "undefined") (pointer_declarator "**local_50" (* "*") (pointer_declarator "*local_50" (* "*") (identifier "local_50"))) (; ";")) (declaration "undefined4 local_40;" (type_identifier "undefined4") (identifier "local_40") (; ";")) (declaration "undefined4 local_3c;" (type_identifier "undefined4") (identifier "local_3c") (; ";")) (declaration "undefined4 local_38;" (type_identifier "undefined4") (identifier "local_38") (; ";")) (declaration "undefined4 local_34;" (type_identifier "undefined4") (identifier "local_34") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "undefined4 local_2c;" (type_identifier "undefined4") (identifier "local_2c") (; ";")) (declaration "undefined4 local_28;" (type_identifier "undefined4") (identifier "local_28") (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "int local_20;" (primitive_type "int") (identifier "local_20") (; ";")) (expression_statement "bVar18 = 0;" (assignment_expression "bVar18 = 0" (identifier "bVar18") (= "=") (number_literal "0")) (; ";")) (expression_statement "local_70[0] = &__DT_PLTGOT;" (assignment_expression "local_70[0] = &__DT_PLTGOT" (subscript_expression "local_70[0]" (identifier "local_70") ([ "[") (number_literal "0") (] "]")) (= "=") (pointer_expression "&__DT_PLTGOT" (& "&") (identifier "__DT_PLTGOT"))) (; ";")) (expression_statement "puVar11 = auStack_7c;" (assignment_expression "puVar11 = auStack_7c" (identifier "puVar11") (= "=") (identifier "auStack_7c")) (; ";")) (expression_statement "local_54 = param_4;" (assignment_expression "local_54 = param_4" (identifier "local_54") (= "=") (identifier "param_4")) (; ";")) (expression_statement "local_20 = *(int *)(in_GS_OFFSET + 0x14);" (assignment_expression "local_20 = *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (= "=") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (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 "param_3[0x98] = (undefined *)0xffffffff;" (assignment_expression "param_3[0x98] = (undefined *)0xffffffff" (subscript_expression "param_3[0x98]" (identifier "param_3") ([ "[") (number_literal "0x98") (] "]")) (= "=") (cast_expression "(undefined *)0xffffffff" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0xffffffff"))) (; ";")) (expression_statement "param_3[0x96] = (undefined *)param_1;" (assignment_expression "param_3[0x96] = (undefined *)param_1" (subscript_expression "param_3[0x96]" (identifier "param_3") ([ "[") (number_literal "0x96") (] "]")) (= "=") (cast_expression "(undefined *)param_1" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_1"))) (; ";")) (expression_statement "param_3[0x97] = (undefined *)param_2;" (assignment_expression "param_3[0x97] = (undefined *)param_2" (subscript_expression "param_3[0x97]" (identifier "param_3") ([ "[") (number_literal "0x97") (] "]")) (= "=") (cast_expression "(undefined *)param_2" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "param_2"))) (; ";")) (expression_statement "local_59 = *(char *)(param_3 + 1);" (assignment_expression "local_59 = *(char *)(param_3 + 1)" (identifier "local_59") (= "=") (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 (local_59 == '\0') {\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }" (if "if") (parenthesized_expression "(local_59 == '\0')" (( "(") (binary_expression "local_59 == '\0'" (identifier "local_59") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (compound_statement "{\n    puVar10 = &stack0xffffff7c;\n    pcVar6 = "no syntax specified";\n    goto LAB_00026c24;\n  }" ({ "{") (expression_statement "puVar10 = &stack0xffffff7c;" (assignment_expression "puVar10 = &stack0xffffff7c" (identifier "puVar10") (= "=") (pointer_expression "&stack0xffffff7c" (& "&") (identifier "stack0xffffff7c"))) (; ";")) (expression_statement "pcVar6 = "no syntax specified";" (assignment_expression "pcVar6 = "no syntax specified"" (identifier "pcVar6") (= "=") (string_literal ""no syntax specified"" (" """) (string_content "no syntax specified") (" """))) (; ";")) (goto_statement "goto LAB_00026c24;" (goto "goto") (statement_identifier "LAB_00026c24") (; ";")) (} "}"))) (if_statement "if (param_3[0xab] == (undefined *)0x0) {\n    FUN_000221a0();\n  }" (if "if") (parenthesized_expression "(param_3[0xab] == (undefined *)0x0)" (( "(") (binary_expression "param_3[0xab] == (undefined *)0x0" (subscript_expression "param_3[0xab]" (identifier "param_3") ([ "[") (number_literal "0xab") (] "]")) (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    FUN_000221a0();\n  }" ({ "{") (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" (identifier "FUN_000221a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (expression_statement "uVar3 = FUN_00024d90();" (assignment_expression "uVar3 = FUN_00024d90()" (identifier "uVar3") (= "=") (call_expression "FUN_00024d90()" (identifier "FUN_00024d90") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_3[0xa4] = (undefined *)uVar3;" (assignment_expression "param_3[0xa4] = (undefined *)uVar3" (subscript_expression "param_3[0xa4]" (identifier "param_3") ([ "[") (number_literal "0xa4") (] "]")) (= "=") (cast_expression "(undefined *)uVar3" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar3"))) (; ";")) (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_00025a60();" (call_expression "FUN_00025a60()" (identifier "FUN_00025a60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "local_64 = (int)param_3[0xa4];" (assignment_expression "local_64 = (int)param_3[0xa4]" (identifier "local_64") (= "=") (cast_expression "(int)param_3[0xa4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xa4]" (identifier "param_3") ([ "[") (number_literal "0xa4") (] "]")))) (; ";")) (if_statement "if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }" (if "if") (parenthesized_expression "(((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64))" (( "(") (binary_expression "((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)" (parenthesized_expression "((local_64 - 0x106U & 0xfffffffd) != 0)" (( "(") (binary_expression "(local_64 - 0x106U & 0xfffffffd) != 0" (parenthesized_expression "(local_64 - 0x106U & 0xfffffffd)" (( "(") (binary_expression "local_64 - 0x106U & 0xfffffffd" (binary_expression "local_64 - 0x106U" (identifier "local_64") (- "-") (number_literal "0x106U")) (& "&") (number_literal "0xfffffffd")) () ")")) (!= "!=") (number_literal "0")) () ")")) (&& "&&") (parenthesized_expression "(-1 < local_64)" (( "(") (binary_expression "-1 < local_64" (number_literal "-1") (< "<") (identifier "local_64")) () ")"))) () ")")) (compound_statement "{\n    do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);\n    local_64 = iVar7;\n  }" ({ "{") (do_statement "do {\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    } while (-1 < iVar7);" (do "do") (compound_statement "{\n      FUN_00025a60();\n      FUN_000221a0();\n      iVar7 = (int)param_3[0xa4];\n      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;\n    }" ({ "{") (expression_statement "FUN_00025a60();" (call_expression "FUN_00025a60()" (identifier "FUN_00025a60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" (identifier "FUN_000221a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = (int)param_3[0xa4];" (assignment_expression "iVar7 = (int)param_3[0xa4]" (identifier "iVar7") (= "=") (cast_expression "(int)param_3[0xa4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xa4]" (identifier "param_3") ([ "[") (number_literal "0xa4") (] "]")))) (; ";")) (if_statement "if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;" (if "if") (parenthesized_expression "((iVar7 - 0x106U & 0xfffffffd) == 0)" (( "(") (binary_expression "(iVar7 - 0x106U & 0xfffffffd) == 0" (parenthesized_expression "(iVar7 - 0x106U & 0xfffffffd)" (( "(") (binary_expression "iVar7 - 0x106U & 0xfffffffd" (binary_expression "iVar7 - 0x106U" (identifier "iVar7") (- "-") (number_literal "0x106U")) (& "&") (number_literal "0xfffffffd")) () ")")) (== "==") (number_literal "0")) () ")")) (break_statement "break;" (break "break") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(-1 < iVar7)" (( "(") (binary_expression "-1 < iVar7" (number_literal "-1") (< "<") (identifier "iVar7")) () ")")) (; ";")) (expression_statement "local_64 = iVar7;" (assignment_expression "local_64 = iVar7" (identifier "local_64") (= "=") (identifier "iVar7")) (; ";")) (} "}"))) (if_statement "if (local_64 == 0x106) {\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }" (if "if") (parenthesized_expression "(local_64 == 0x106)" (( "(") (binary_expression "local_64 == 0x106" (identifier "local_64") (== "==") (number_literal "0x106")) () ")")) (compound_statement "{\n    do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);\n    local_64 = (int)param_3[0xa4];\n  }" ({ "{") (do_statement "do {\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    } while (param_3[0xa4] == (undefined *)0x106);" (do "do") (compound_statement "{\n      uVar3 = FUN_00024d90();\n      param_3[0xa4] = (undefined *)uVar3;\n      FUN_00025a60();\n      iVar7 = (int)param_3[0xa4];\n      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }\n      FUN_000221a0();\n    }" ({ "{") (expression_statement "uVar3 = FUN_00024d90();" (assignment_expression "uVar3 = FUN_00024d90()" (identifier "uVar3") (= "=") (call_expression "FUN_00024d90()" (identifier "FUN_00024d90") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "param_3[0xa4] = (undefined *)uVar3;" (assignment_expression "param_3[0xa4] = (undefined *)uVar3" (subscript_expression "param_3[0xa4]" (identifier "param_3") ([ "[") (number_literal "0xa4") (] "]")) (= "=") (cast_expression "(undefined *)uVar3" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "uVar3"))) (; ";")) (expression_statement "FUN_00025a60();" (call_expression "FUN_00025a60()" (identifier "FUN_00025a60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = (int)param_3[0xa4];" (assignment_expression "iVar7 = (int)param_3[0xa4]" (identifier "iVar7") (= "=") (cast_expression "(int)param_3[0xa4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xa4]" (identifier "param_3") ([ "[") (number_literal "0xa4") (] "]")))) (; ";")) (while_statement "while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }" (while "while") (parenthesized_expression "(((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7)))" (( "(") (parenthesized_expression "((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))" (( "(") (binary_expression "(iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7)" (binary_expression "(iVar7 - 0x106U & 0xfffffffd) != 0" (parenthesized_expression "(iVar7 - 0x106U & 0xfffffffd)" (( "(") (binary_expression "iVar7 - 0x106U & 0xfffffffd" (binary_expression "iVar7 - 0x106U" (identifier "iVar7") (- "-") (number_literal "0x106U")) (& "&") (number_literal "0xfffffffd")) () ")")) (!= "!=") (number_literal "0")) (&& "&&") (parenthesized_expression "(-1 < iVar7)" (( "(") (binary_expression "-1 < iVar7" (number_literal "-1") (< "<") (identifier "iVar7")) () ")"))) () ")")) () ")")) (compound_statement "{\n        FUN_00025a60();\n        FUN_000221a0();\n        iVar7 = (int)param_3[0xa4];\n      }" ({ "{") (expression_statement "FUN_00025a60();" (call_expression "FUN_00025a60()" (identifier "FUN_00025a60") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" (identifier "FUN_000221a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = (int)param_3[0xa4];" (assignment_expression "iVar7 = (int)param_3[0xa4]" (identifier "iVar7") (= "=") (cast_expression "(int)param_3[0xa4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xa4]" (identifier "param_3") ([ "[") (number_literal "0xa4") (] "]")))) (; ";")) (} "}"))) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" (identifier "FUN_000221a0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(param_3[0xa4] == (undefined *)0x106)" (( "(") (binary_expression "param_3[0xa4] == (undefined *)0x106" (subscript_expression "param_3[0xa4]" (identifier "param_3") ([ "[") (number_literal "0xa4") (] "]")) (== "==") (cast_expression "(undefined *)0x106" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x106"))) () ")")) (; ";")) (expression_statement "local_64 = (int)param_3[0xa4];" (assignment_expression "local_64 = (int)param_3[0xa4]" (identifier "local_64") (= "=") (cast_expression "(int)param_3[0xa4]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xa4]" (identifier "param_3") ([ "[") (number_literal "0xa4") (] "]")))) (; ";")) (} "}"))) (if_statement "if (local_64 != -1) {\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }" (if "if") (parenthesized_expression "(local_64 != -1)" (( "(") (binary_expression "local_64 != -1" (identifier "local_64") (!= "!=") (number_literal "-1")) () ")")) (compound_statement "{\n    do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );\n  }" ({ "{") (do_statement "do {\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    } while( true );" (do "do") (compound_statement "{\n      *(undefined ***)(puVar11 + -4) = param_3;\n      puVar10 = puVar11 + -8;\n      *(undefined4 *)(puVar11 + -8) = 5;\n      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);\nLAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;\n      puVar11 = puVar10 + -8;\n      *(undefined4 *)(puVar10 + -8) = 0;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;\n      uVar3 = dcgettext();\n      *(undefined4 *)(puVar10 + -8) = uVar3;\n      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;\n      FUN_000143e0();\n    }" ({ "{") (expression_statement "*(undefined ***)(puVar11 + -4) = param_3;" (assignment_expression "*(undefined ***)(puVar11 + -4) = param_3" (pointer_expression "*(undefined ***)(puVar11 + -4)" (* "*") (cast_expression "(undefined ***)(puVar11 + -4)" (( "(") (type_descriptor "undefined ***" (type_identifier "undefined") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(puVar11 + -4)" (( "(") (binary_expression "puVar11 + -4" (identifier "puVar11") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar10 = puVar11 + -8;" (assignment_expression "puVar10 = puVar11 + -8" (identifier "puVar10") (= "=") (binary_expression "puVar11 + -8" (identifier "puVar11") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "*(undefined4 *)(puVar11 + -8) = 5;" (assignment_expression "*(undefined4 *)(puVar11 + -8) = 5" (pointer_expression "*(undefined4 *)(puVar11 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar11 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + -8)" (( "(") (binary_expression "puVar11 + -8" (identifier "puVar11") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "5")) (; ";")) (expression_statement "pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);" (assignment_expression "pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e)" (identifier "pcVar6") (= "=") (cast_expression "(char *)(*(int *)(puVar11 + 0xc) + -0xcb6e)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(puVar11 + 0xc) + -0xcb6e)" (( "(") (binary_expression "*(int *)(puVar11 + 0xc) + -0xcb6e" (pointer_expression "*(int *)(puVar11 + 0xc)" (* "*") (cast_expression "(int *)(puVar11 + 0xc)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar11 + 0xc)" (( "(") (binary_expression "puVar11 + 0xc" (identifier "puVar11") (+ "+") (number_literal "0xc")) () ")")))) (+ "+") (number_literal "-0xcb6e")) () ")")))) (; ";")) (labeled_statement "LAB_00026c24:\n      *(char **)(puVar10 + -4) = pcVar6;" (statement_identifier "LAB_00026c24") (: ":") (expression_statement "*(char **)(puVar10 + -4) = pcVar6;" (assignment_expression "*(char **)(puVar10 + -4) = pcVar6" (pointer_expression "*(char **)(puVar10 + -4)" (* "*") (cast_expression "(char **)(puVar10 + -4)" (( "(") (type_descriptor "char **" (primitive_type "char") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar10 + -4)" (( "(") (binary_expression "puVar10 + -4" (identifier "puVar10") (+ "+") (number_literal "-4")) () ")")))) (= "=") (identifier "pcVar6")) (; ";"))) (expression_statement "puVar11 = puVar10 + -8;" (assignment_expression "puVar11 = puVar10 + -8" (identifier "puVar11") (= "=") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8"))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -8) = 0;" (assignment_expression "*(undefined4 *)(puVar10 + -8) = 0" (pointer_expression "*(undefined4 *)(puVar10 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = 0x26c2e;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = 0x26c2e" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x26c2e")) (; ";")) (expression_statement "uVar3 = dcgettext();" (assignment_expression "uVar3 = dcgettext()" (identifier "uVar3") (= "=") (call_expression "dcgettext()" (identifier "dcgettext") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -8) = uVar3;" (assignment_expression "*(undefined4 *)(puVar10 + -8) = uVar3" (pointer_expression "*(undefined4 *)(puVar10 + -8)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -8)" (( "(") (binary_expression "puVar10 + -8" (identifier "puVar10") (+ "+") (number_literal "-8")) () ")")))) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "*(undefined4 *)(puVar10 + -0xc) = 0x26c36;" (assignment_expression "*(undefined4 *)(puVar10 + -0xc) = 0x26c36" (pointer_expression "*(undefined4 *)(puVar10 + -0xc)" (* "*") (cast_expression "(undefined4 *)(puVar10 + -0xc)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar10 + -0xc)" (( "(") (binary_expression "puVar10 + -0xc" (identifier "puVar10") (+ "+") (number_literal "-0xc")) () ")")))) (= "=") (number_literal "0x26c36")) (; ";")) (expression_statement "FUN_000143e0();" (call_expression "FUN_000143e0()" (identifier "FUN_000143e0") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "( true )" (( "(") (true "true") () ")")) (; ";")) (} "}"))) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" (identifier "FUN_000221a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" (identifier "FUN_000221a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = (int)param_3[0xab];" (assignment_expression "iVar7 = (int)param_3[0xab]" (identifier "iVar7") (= "=") (cast_expression "(int)param_3[0xab]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xab]" (identifier "param_3") ([ "[") (number_literal "0xab") (] "]")))) (; ";")) (if_statement "if (iVar7 != 0) {\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    FUN_000221a0();\n    iVar7 = (int)param_3[0xab];\n  }" ({ "{") (expression_statement "FUN_000221a0();" (call_expression "FUN_000221a0()" (identifier "FUN_000221a0") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iVar7 = (int)param_3[0xab];" (assignment_expression "iVar7 = (int)param_3[0xab]" (identifier "iVar7") (= "=") (cast_expression "(int)param_3[0xab]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xab]" (identifier "param_3") ([ "[") (number_literal "0xab") (] "]")))) (; ";")) (} "}"))) (expression_statement "param_3[0xab] = (undefined *)(iVar7 + 1);" (assignment_expression "param_3[0xab] = (undefined *)(iVar7 + 1)" (subscript_expression "param_3[0xab]" (identifier "param_3") ([ "[") (number_literal "0xab") (] "]")) (= "=") (cast_expression "(undefined *)(iVar7 + 1)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + 1)" (( "(") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1")) () ")")))) (; ";")) (expression_statement "local_74 = (undefined4 *)FUN_0002efa0(0x834);" (assignment_expression "local_74 = (undefined4 *)FUN_0002efa0(0x834)" (identifier "local_74") (= "=") (cast_expression "(undefined4 *)FUN_0002efa0(0x834)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002efa0(0x834)" (identifier "FUN_0002efa0") (argument_list "(0x834)" (( "(") (number_literal "0x834") () ")"))))) (; ";")) (expression_statement "puVar12 = param_3;" (assignment_expression "puVar12 = param_3" (identifier "puVar12") (= "=") (identifier "param_3")) (; ";")) (expression_statement "puVar16 = local_74;" (assignment_expression "puVar16 = local_74" (identifier "puVar16") (= "=") (identifier "local_74")) (; ";")) (for_statement "for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }" (for "for") (( "(") (assignment_expression "iVar7 = 0x20d" (identifier "iVar7") (= "=") (number_literal "0x20d")) (; ";") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) (; ";") (assignment_expression "iVar7 = iVar7 + -1" (identifier "iVar7") (= "=") (binary_expression "iVar7 + -1" (identifier "iVar7") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n    *puVar16 = *puVar12;\n    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;\n    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;\n  }" ({ "{") (expression_statement "*puVar16 = *puVar12;" (assignment_expression "*puVar16 = *puVar12" (pointer_expression "*puVar16" (* "*") (identifier "puVar16")) (= "=") (pointer_expression "*puVar12" (* "*") (identifier "puVar12"))) (; ";")) (expression_statement "puVar12 = puVar12 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar12 = puVar12 + (uint)bVar18 * -2 + 1" (identifier "puVar12") (= "=") (binary_expression "puVar12 + (uint)bVar18 * -2 + 1" (binary_expression "puVar12 + (uint)bVar18 * -2" (identifier "puVar12") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (expression_statement "puVar16 = puVar16 + (uint)bVar18 * -2 + 1;" (assignment_expression "puVar16 = puVar16 + (uint)bVar18 * -2 + 1" (identifier "puVar16") (= "=") (binary_expression "puVar16 + (uint)bVar18 * -2 + 1" (binary_expression "puVar16 + (uint)bVar18 * -2" (identifier "puVar16") (+ "+") (binary_expression "(uint)bVar18 * -2" (cast_expression "(uint)bVar18" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (identifier "bVar18")) (* "*") (number_literal "-2"))) (+ "+") (number_literal "1"))) (; ";")) (} "}"))) (expression_statement "*(undefined1 *)(local_74 + 0xcc) = 0;" (assignment_expression "*(undefined1 *)(local_74 + 0xcc) = 0" (pointer_expression "*(undefined1 *)(local_74 + 0xcc)" (* "*") (cast_expression "(undefined1 *)(local_74 + 0xcc)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_74 + 0xcc)" (( "(") (binary_expression "local_74 + 0xcc" (identifier "local_74") (+ "+") (number_literal "0xcc")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74[0xb4] = 0;" (assignment_expression "local_74[0xb4] = 0" (subscript_expression "local_74[0xb4]" (identifier "local_74") ([ "[") (number_literal "0xb4") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74[0xb5] = 0;" (assignment_expression "local_74[0xb5] = 0" (subscript_expression "local_74[0xb5]" (identifier "local_74") ([ "[") (number_literal "0xb5") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_50 = local_70[0] + -0x98c7;" (assignment_expression "local_50 = local_70[0] + -0x98c7" (identifier "local_50") (= "=") (binary_expression "local_70[0] + -0x98c7" (subscript_expression "local_70[0]" (identifier "local_70") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0x98c7"))) (; ";")) (expression_statement "local_74[0xca] = local_50;" (assignment_expression "local_74[0xca] = local_50" (subscript_expression "local_74[0xca]" (identifier "local_74") ([ "[") (number_literal "0xca") (] "]")) (= "=") (identifier "local_50")) (; ";")) (expression_statement "local_74[0xb6] = 0;" (assignment_expression "local_74[0xb6] = 0" (subscript_expression "local_74[0xb6]" (identifier "local_74") ([ "[") (number_literal "0xb6") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74[0xb7] = 0;" (assignment_expression "local_74[0xb7] = 0" (subscript_expression "local_74[0xb7]" (identifier "local_74") ([ "[") (number_literal "0xb7") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74[0xbb] = 0;" (assignment_expression "local_74[0xbb] = 0" (subscript_expression "local_74[0xbb]" (identifier "local_74") ([ "[") (number_literal "0xbb") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74[0xbc] = 0;" (assignment_expression "local_74[0xbc] = 0" (subscript_expression "local_74[0xbc]" (identifier "local_74") ([ "[") (number_literal "0xbc") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74[0xb9] = 0;" (assignment_expression "local_74[0xb9] = 0" (subscript_expression "local_74[0xb9]" (identifier "local_74") ([ "[") (number_literal "0xb9") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74[0xbd] = 0;" (assignment_expression "local_74[0xbd] = 0" (subscript_expression "local_74[0xbd]" (identifier "local_74") ([ "[") (number_literal "0xbd") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar7 = local_74[0x94] << 5;" (assignment_expression "iVar7 = local_74[0x94] << 5" (identifier "iVar7") (= "=") (binary_expression "local_74[0x94] << 5" (subscript_expression "local_74[0x94]" (identifier "local_74") ([ "[") (number_literal "0x94") (] "]")) (<< "<<") (number_literal "5"))) (; ";")) (expression_statement "local_74[0xc0] = 0;" (assignment_expression "local_74[0xc0] = 0" (subscript_expression "local_74[0xc0]" (identifier "local_74") ([ "[") (number_literal "0xc0") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74[0xc1] = 0;" (assignment_expression "local_74[0xc1] = 0" (subscript_expression "local_74[0xc1]" (identifier "local_74") ([ "[") (number_literal "0xc1") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74[0xc2] = 0;" (assignment_expression "local_74[0xc2] = 0" (subscript_expression "local_74[0xc2]" (identifier "local_74") ([ "[") (number_literal "0xc2") (] "]")) (= "=") (number_literal "0")) (; ";")) (expression_statement "local_74[0xc3] = 0;" (assignment_expression "local_74[0xc3] = 0" (subscript_expression "local_74[0xc3]" (identifier "local_74") ([ "[") (number_literal "0xc3") (] "]")) (= "=") (number_literal "0")) (; ";")) (if_statement "if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {\nLAB_00026c0e:\n                    \n    FUN_0002f1c0();\n  }" (if "if") (parenthesized_expression "((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0))" (( "(") (binary_expression "(iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)" (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((uint)local_74[0x94] >> 0x1b != 0)" (( "(") (binary_expression "(uint)local_74[0x94] >> 0x1b != 0" (binary_expression "(uint)local_74[0x94] >> 0x1b" (cast_expression "(uint)local_74[0x94]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_74[0x94]" (identifier "local_74") ([ "[") (number_literal "0x94") (] "]"))) (>> ">>") (number_literal "0x1b")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\nLAB_00026c0e:\n                    \n    FUN_0002f1c0();\n  }" ({ "{") (labeled_statement "LAB_00026c0e:\n                    \n    FUN_0002f1c0();" (statement_identifier "LAB_00026c0e") (: ":") (expression_statement "FUN_0002f1c0();" (call_expression "FUN_0002f1c0()" (identifier "FUN_0002f1c0") (argument_list "()" (( "(") () ")"))) (; ";"))) (} "}"))) (expression_statement "__dest = (void *)FUN_0002efa0(iVar7);" (assignment_expression "__dest = (void *)FUN_0002efa0(iVar7)" (identifier "__dest") (= "=") (cast_expression "(void *)FUN_0002efa0(iVar7)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "FUN_0002efa0(iVar7)" (identifier "FUN_0002efa0") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")"))))) (; ";")) (expression_statement "iVar7 = (int)param_3[0x93];" (assignment_expression "iVar7 = (int)param_3[0x93]" (identifier "iVar7") (= "=") (cast_expression "(int)param_3[0x93]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0x93]" (identifier "param_3") ([ "[") (number_literal "0x93") (] "]")))) (; ";")) (expression_statement "local_74[0x92] = __dest;" (assignment_expression "local_74[0x92] = __dest" (subscript_expression "local_74[0x92]" (identifier "local_74") ([ "[") (number_literal "0x92") (] "]")) (= "=") (identifier "__dest")) (; ";")) (if_statement "if (iVar7 != 0) {\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    memcpy(__dest,param_3[0x92],iVar7 << 5);\n  }" ({ "{") (expression_statement "memcpy(__dest,param_3[0x92],iVar7 << 5);" (call_expression "memcpy(__dest,param_3[0x92],iVar7 << 5)" (identifier "memcpy") (argument_list "(__dest,param_3[0x92],iVar7 << 5)" (( "(") (identifier "__dest") (, ",") (subscript_expression "param_3[0x92]" (identifier "param_3") ([ "[") (number_literal "0x92") (] "]")) (, ",") (binary_expression "iVar7 << 5" (identifier "iVar7") (<< "<<") (number_literal "5")) () ")"))) (; ";")) (} "}"))) (expression_statement "iVar7 = (int)param_3[0xa7] << 3;" (assignment_expression "iVar7 = (int)param_3[0xa7] << 3" (identifier "iVar7") (= "=") (binary_expression "(int)param_3[0xa7] << 3" (cast_expression "(int)param_3[0xa7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xa7]" (identifier "param_3") ([ "[") (number_literal "0xa7") (] "]"))) (<< "<<") (number_literal "3"))) (; ";")) (if_statement "if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;" (if "if") (parenthesized_expression "((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0))" (( "(") (binary_expression "(iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)" (parenthesized_expression "(iVar7 < 0)" (( "(") (binary_expression "iVar7 < 0" (identifier "iVar7") (< "<") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "((uint)param_3[0xa7] >> 0x1d != 0)" (( "(") (binary_expression "(uint)param_3[0xa7] >> 0x1d != 0" (binary_expression "(uint)param_3[0xa7] >> 0x1d" (cast_expression "(uint)param_3[0xa7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[0xa7]" (identifier "param_3") ([ "[") (number_literal "0xa7") (] "]"))) (>> ">>") (number_literal "0x1d")) (!= "!=") (number_literal "0")) () ")"))) () ")")) (goto_statement "goto LAB_00026c0e;" (goto "goto") (statement_identifier "LAB_00026c0e") (; ";"))) (expression_statement "uVar3 = FUN_0002efa0(iVar7);" (assignment_expression "uVar3 = FUN_0002efa0(iVar7)" (identifier "uVar3") (= "=") (call_expression "FUN_0002efa0(iVar7)" (identifier "FUN_0002efa0") (argument_list "(iVar7)" (( "(") (identifier "iVar7") () ")")))) (; ";")) (expression_statement "local_74[0xa6] = uVar3;" (assignment_expression "local_74[0xa6] = uVar3" (subscript_expression "local_74[0xa6]" (identifier "local_74") ([ "[") (number_literal "0xa6") (] "]")) (= "=") (identifier "uVar3")) (; ";")) (expression_statement "iVar7 = (int)param_3[0xa7];" (assignment_expression "iVar7 = (int)param_3[0xa7]" (identifier "iVar7") (= "=") (cast_expression "(int)param_3[0xa7]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xa7]" (identifier "param_3") ([ "[") (number_literal "0xa7") (] "]")))) (; ";")) (expression_statement "local_74[0xa8] = iVar7 * 2;" (assignment_expression "local_74[0xa8] = iVar7 * 2" (subscript_expression "local_74[0xa8]" (identifier "local_74") ([ "[") (number_literal "0xa8") (] "]")) (= "=") (binary_expression "iVar7 * 2" (identifier "iVar7") (* "*") (number_literal "2"))) (; ";")) (if_statement "if (iVar7 == 0) {\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }\n  else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }" (if "if") (parenthesized_expression "(iVar7 == 0)" (( "(") (binary_expression "iVar7 == 0" (identifier "iVar7") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    local_74[0xa7] = 0;\nLAB_00026a5d:\n    puVar12 = local_74;\n    FUN_00026290(local_74);\n    free(puVar12);\n    uVar5 = (uint)param_3[0xa7];\n  }" ({ "{") (expression_statement "local_74[0xa7] = 0;" (assignment_expression "local_74[0xa7] = 0" (subscript_expression "local_74[0xa7]" (identifier "local_74") ([ "[") (number_literal "0xa7") (] "]")) (= "=") (number_literal "0")) (; ";")) (labeled_statement "LAB_00026a5d:\n    puVar12 = local_74;" (statement_identifier "LAB_00026a5d") (: ":") (expression_statement "puVar12 = local_74;" (assignment_expression "puVar12 = local_74" (identifier "puVar12") (= "=") (identifier "local_74")) (; ";"))) (expression_statement "FUN_00026290(local_74);" (call_expression "FUN_00026290(local_74)" (identifier "FUN_00026290") (argument_list "(local_74)" (( "(") (identifier "local_74") () ")"))) (; ";")) (expression_statement "free(puVar12);" (call_expression "free(puVar12)" (identifier "free") (argument_list "(puVar12)" (( "(") (identifier "puVar12") () ")"))) (; ";")) (expression_statement "uVar5 = (uint)param_3[0xa7];" (assignment_expression "uVar5 = (uint)param_3[0xa7]" (identifier "uVar5") (= "=") (cast_expression "(uint)param_3[0xa7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "param_3[0xa7]" (identifier "param_3") ([ "[") (number_literal "0xa7") (] "]")))) (; ";")) (} "}")) (else_clause "else {\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }" (else "else") (compound_statement "{\n    local_60 = (int)param_3[0xa6];\n    local_5a = '\0';\n    local_70[1] = param_3;\n    local_58 = &local_40;\n    local_5b = '\0';\n    iVar7 = 0;\n    uVar9 = 0;\n    do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);\n    local_74[0xa7] = iVar8;\n    param_3 = local_70[1];\n    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;\n    local_70[1][0xb5] = (undefined *)local_74;\n  }" ({ "{") (expression_statement "local_60 = (int)param_3[0xa6];" (assignment_expression "local_60 = (int)param_3[0xa6]" (identifier "local_60") (= "=") (cast_expression "(int)param_3[0xa6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xa6]" (identifier "param_3") ([ "[") (number_literal "0xa6") (] "]")))) (; ";")) (expression_statement "local_5a = '\0';" (assignment_expression "local_5a = '\0'" (identifier "local_5a") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "local_70[1] = param_3;" (assignment_expression "local_70[1] = param_3" (subscript_expression "local_70[1]" (identifier "local_70") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "param_3")) (; ";")) (expression_statement "local_58 = &local_40;" (assignment_expression "local_58 = &local_40" (identifier "local_58") (= "=") (pointer_expression "&local_40" (& "&") (identifier "local_40"))) (; ";")) (expression_statement "local_5b = '\0';" (assignment_expression "local_5b = '\0'" (identifier "local_5b") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (expression_statement "iVar7 = 0;" (assignment_expression "iVar7 = 0" (identifier "iVar7") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    } while (local_68 < uVar5);" (do "do") (compound_statement "{\n      puVar12 = local_74;\n      local_68 = uVar9 + 1;\n      iVar13 = iVar7 * 4;\n      iVar8 = iVar7 + 1;\n      uVar5 = *(uint *)(local_60 + uVar9 * 4);\n      uVar2 = local_68;\n      if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }\n      local_68 = uVar2;\n      uVar5 = (uint)local_70[1][0xa7];\n      iVar7 = iVar8;\n      uVar9 = local_68;\n    }" ({ "{") (expression_statement "puVar12 = local_74;" (assignment_expression "puVar12 = local_74" (identifier "puVar12") (= "=") (identifier "local_74")) (; ";")) (expression_statement "local_68 = uVar9 + 1;" (assignment_expression "local_68 = uVar9 + 1" (identifier "local_68") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "iVar13 = iVar7 * 4;" (assignment_expression "iVar13 = iVar7 * 4" (identifier "iVar13") (= "=") (binary_expression "iVar7 * 4" (identifier "iVar7") (* "*") (number_literal "4"))) (; ";")) (expression_statement "iVar8 = iVar7 + 1;" (assignment_expression "iVar8 = iVar7 + 1" (identifier "iVar8") (= "=") (binary_expression "iVar7 + 1" (identifier "iVar7") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar5 = *(uint *)(local_60 + uVar9 * 4);" (assignment_expression "uVar5 = *(uint *)(local_60 + uVar9 * 4)" (identifier "uVar5") (= "=") (pointer_expression "*(uint *)(local_60 + uVar9 * 4)" (* "*") (cast_expression "(uint *)(local_60 + uVar9 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_60 + uVar9 * 4)" (( "(") (binary_expression "local_60 + uVar9 * 4" (identifier "local_60") (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "uVar2 = local_68;" (assignment_expression "uVar2 = local_68" (identifier "uVar2") (= "=") (identifier "local_68")) (; ";")) (if_statement "if (uVar5 - 0x10a < 10) {\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }\n      else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }" (if "if") (parenthesized_expression "(uVar5 - 0x10a < 10)" (( "(") (binary_expression "uVar5 - 0x10a < 10" (binary_expression "uVar5 - 0x10a" (identifier "uVar5") (- "-") (number_literal "0x10a")) (< "<") (number_literal "10")) () ")")) (compound_statement "{\n        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);\n        if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }\n      }" ({ "{") (expression_statement "uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);" (assignment_expression "uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f)" (identifier "uVar17") (= "=") (binary_expression "1 << ((byte)(uVar5 - 0x10a) & 0x1f)" (number_literal "1") (<< "<<") (parenthesized_expression "((byte)(uVar5 - 0x10a) & 0x1f)" (( "(") (binary_expression "(byte)(uVar5 - 0x10a) & 0x1f" (call_expression "(byte)(uVar5 - 0x10a)" (parenthesized_expression "(byte)" (( "(") (identifier "byte") () ")")) (argument_list "(uVar5 - 0x10a)" (( "(") (binary_expression "uVar5 - 0x10a" (identifier "uVar5") (- "-") (number_literal "0x10a")) () ")"))) (& "&") (number_literal "0x1f")) () ")")))) (; ";")) (if_statement "if ((uVar17 & 0x301) == 0) {\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }\n        else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }" (if "if") (parenthesized_expression "((uVar17 & 0x301) == 0)" (( "(") (binary_expression "(uVar17 & 0x301) == 0" (parenthesized_expression "(uVar17 & 0x301)" (( "(") (binary_expression "uVar17 & 0x301" (identifier "uVar17") (& "&") (number_literal "0x301")) () ")")) (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }\n        }" ({ "{") (if_statement "if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }\n          else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }" (if "if") (parenthesized_expression "(((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0'))" (( "(") (binary_expression "((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')" (parenthesized_expression "((uVar17 & 0xf0) == 0)" (( "(") (binary_expression "(uVar17 & 0xf0) == 0" (parenthesized_expression "(uVar17 & 0xf0)" (( "(") (binary_expression "uVar17 & 0xf0" (identifier "uVar17") (& "&") (number_literal "0xf0")) () ")")) (== "==") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(*(char *)(local_70[1] + 0xcc) == '\0')" (( "(") (binary_expression "*(char *)(local_70[1] + 0xcc) == '\0'" (pointer_expression "*(char *)(local_70[1] + 0xcc)" (* "*") (cast_expression "(char *)(local_70[1] + 0xcc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70[1] + 0xcc)" (( "(") (binary_expression "local_70[1] + 0xcc" (subscript_expression "local_70[1]" (identifier "local_70") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xcc")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) (compound_statement "{\n            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;\n          }" ({ "{") (expression_statement "*(uint *)(iVar13 + local_74[0xa6]) = uVar5;" (assignment_expression "*(uint *)(iVar13 + local_74[0xa6]) = uVar5" (pointer_expression "*(uint *)(iVar13 + local_74[0xa6])" (* "*") (cast_expression "(uint *)(iVar13 + local_74[0xa6])" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + local_74[0xa6])" (( "(") (binary_expression "iVar13 + local_74[0xa6]" (identifier "iVar13") (+ "+") (subscript_expression "local_74[0xa6]" (identifier "local_74") ([ "[") (number_literal "0xa6") (] "]"))) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (} "}")) (else_clause "else {\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }" (else "else") (compound_statement "{\n            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;\n          }" ({ "{") (expression_statement "*(uint *)(iVar13 + local_74[0xa6]) = 0x100;" (assignment_expression "*(uint *)(iVar13 + local_74[0xa6]) = 0x100" (pointer_expression "*(uint *)(iVar13 + local_74[0xa6])" (* "*") (cast_expression "(uint *)(iVar13 + local_74[0xa6])" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar13 + local_74[0xa6])" (( "(") (binary_expression "iVar13 + local_74[0xa6]" (identifier "iVar13") (+ "+") (subscript_expression "local_74[0xa6]" (identifier "local_74") ([ "[") (number_literal "0xa6") (] "]"))) () ")")))) (= "=") (number_literal "0x100")) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }" (else "else") (compound_statement "{\n          local_40 = 0xffffffff;\n          local_3c = 0xffffffff;\n          local_38 = 0xffffffff;\n          local_34 = 0xffffffff;\n          local_30 = 0xffffffff;\n          local_2c = 0xffffffff;\n          local_28 = 0xffffffff;\n          local_24 = 0xffffffff;\n          iVar4 = FUN_00020370();\n          iVar1 = puVar12[0xa6];\n          iVar8 = iVar7 + 2;\n          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;\n          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;\n          local_60 = (int)local_70[1][0xa6];\n          local_5a = local_59;\n          uVar2 = uVar9 + 2;\n          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }\n        }" ({ "{") (expression_statement "local_40 = 0xffffffff;" (assignment_expression "local_40 = 0xffffffff" (identifier "local_40") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_3c = 0xffffffff;" (assignment_expression "local_3c = 0xffffffff" (identifier "local_3c") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_38 = 0xffffffff;" (assignment_expression "local_38 = 0xffffffff" (identifier "local_38") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_34 = 0xffffffff;" (assignment_expression "local_34 = 0xffffffff" (identifier "local_34") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_30 = 0xffffffff;" (assignment_expression "local_30 = 0xffffffff" (identifier "local_30") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_2c = 0xffffffff;" (assignment_expression "local_2c = 0xffffffff" (identifier "local_2c") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_28 = 0xffffffff;" (assignment_expression "local_28 = 0xffffffff" (identifier "local_28") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "local_24 = 0xffffffff;" (assignment_expression "local_24 = 0xffffffff" (identifier "local_24") (= "=") (number_literal "0xffffffff")) (; ";")) (expression_statement "iVar4 = FUN_00020370();" (assignment_expression "iVar4 = FUN_00020370()" (identifier "iVar4") (= "=") (call_expression "FUN_00020370()" (identifier "FUN_00020370") (argument_list "()" (( "(") () ")")))) (; ";")) (expression_statement "iVar1 = puVar12[0xa6];" (assignment_expression "iVar1 = puVar12[0xa6]" (identifier "iVar1") (= "=") (subscript_expression "puVar12[0xa6]" (identifier "puVar12") ([ "[") (number_literal "0xa6") (] "]"))) (; ";")) (expression_statement "iVar8 = iVar7 + 2;" (assignment_expression "iVar8 = iVar7 + 2" (identifier "iVar8") (= "=") (binary_expression "iVar7 + 2" (identifier "iVar7") (+ "+") (number_literal "2"))) (; ";")) (expression_statement "*(int *)(iVar1 + iVar13) = iVar4 + 0x114;" (assignment_expression "*(int *)(iVar1 + iVar13) = iVar4 + 0x114" (pointer_expression "*(int *)(iVar1 + iVar13)" (* "*") (cast_expression "(int *)(iVar1 + iVar13)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + iVar13)" (( "(") (binary_expression "iVar1 + iVar13" (identifier "iVar1") (+ "+") (identifier "iVar13")) () ")")))) (= "=") (binary_expression "iVar4 + 0x114" (identifier "iVar4") (+ "+") (number_literal "0x114"))) (; ";")) (expression_statement "*(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;" (assignment_expression "*(undefined4 *)(iVar1 + 4 + iVar13) = 0x102" (pointer_expression "*(undefined4 *)(iVar1 + 4 + iVar13)" (* "*") (cast_expression "(undefined4 *)(iVar1 + 4 + iVar13)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar1 + 4 + iVar13)" (( "(") (binary_expression "iVar1 + 4 + iVar13" (binary_expression "iVar1 + 4" (identifier "iVar1") (+ "+") (number_literal "4")) (+ "+") (identifier "iVar13")) () ")")))) (= "=") (number_literal "0x102")) (; ";")) (expression_statement "local_60 = (int)local_70[1][0xa6];" (assignment_expression "local_60 = (int)local_70[1][0xa6]" (identifier "local_60") (= "=") (cast_expression "(int)local_70[1][0xa6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "local_70[1][0xa6]" (subscript_expression "local_70[1]" (identifier "local_70") ([ "[") (number_literal "1") (] "]")) ([ "[") (number_literal "0xa6") (] "]")))) (; ";")) (expression_statement "local_5a = local_59;" (assignment_expression "local_5a = local_59" (identifier "local_5a") (= "=") (identifier "local_59")) (; ";")) (expression_statement "uVar2 = uVar9 + 2;" (assignment_expression "uVar2 = uVar9 + 2" (identifier "uVar2") (= "=") (binary_expression "uVar9 + 2" (identifier "uVar9") (+ "+") (number_literal "2"))) (; ";")) (if_statement "if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {\n            uVar2 = local_68;\n          }" (if "if") (parenthesized_expression "(2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U)" (( "(") (binary_expression "2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U" (number_literal "2") (< "<") (binary_expression "*(int *)(local_60 + 4 + uVar9 * 4) - 0x101U" (pointer_expression "*(int *)(local_60 + 4 + uVar9 * 4)" (* "*") (cast_expression "(int *)(local_60 + 4 + uVar9 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_60 + 4 + uVar9 * 4)" (( "(") (binary_expression "local_60 + 4 + uVar9 * 4" (binary_expression "local_60 + 4" (identifier "local_60") (+ "+") (number_literal "4")) (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")")))) (- "-") (number_literal "0x101U"))) () ")")) (compound_statement "{\n            uVar2 = local_68;\n          }" ({ "{") (expression_statement "uVar2 = local_68;" (assignment_expression "uVar2 = local_68" (identifier "uVar2") (= "=") (identifier "local_68")) (; ";")) (} "}"))) (} "}")))) (} "}")) (else_clause "else {\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }" (else "else") (compound_statement "{\n        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;\n        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }\n      }" ({ "{") (expression_statement "*(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;" (assignment_expression "*(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5" (pointer_expression "*(uint *)(local_74[0xa6] + iVar7 * 4)" (* "*") (cast_expression "(uint *)(local_74[0xa6] + iVar7 * 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_74[0xa6] + iVar7 * 4)" (( "(") (binary_expression "local_74[0xa6] + iVar7 * 4" (subscript_expression "local_74[0xa6]" (identifier "local_74") ([ "[") (number_literal "0xa6") (] "]")) (+ "+") (binary_expression "iVar7 * 4" (identifier "iVar7") (* "*") (number_literal "4"))) () ")")))) (= "=") (identifier "uVar5")) (; ";")) (if_statement "if (uVar5 < 0x100 || 0x113 < (int)uVar5) {\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }" (if "if") (parenthesized_expression "(uVar5 < 0x100 || 0x113 < (int)uVar5)" (( "(") (binary_expression "uVar5 < 0x100 || 0x113 < (int)uVar5" (binary_expression "uVar5 < 0x100" (identifier "uVar5") (< "<") (number_literal "0x100")) (|| "||") (binary_expression "0x113 < (int)uVar5" (number_literal "0x113") (< "<") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5")))) () ")")) (compound_statement "{\n          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;\n        }" ({ "{") (expression_statement "local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;" (assignment_expression "local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5" (identifier "local_5b") (= "=") (binary_expression "uVar5 < 0x100 || 0x113 < (int)uVar5" (binary_expression "uVar5 < 0x100" (identifier "uVar5") (< "<") (number_literal "0x100")) (|| "||") (binary_expression "0x113 < (int)uVar5" (number_literal "0x113") (< "<") (cast_expression "(int)uVar5" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar5"))))) (; ";")) (} "}"))) (} "}")))) (expression_statement "local_68 = uVar2;" (assignment_expression "local_68 = uVar2" (identifier "local_68") (= "=") (identifier "uVar2")) (; ";")) (expression_statement "uVar5 = (uint)local_70[1][0xa7];" (assignment_expression "uVar5 = (uint)local_70[1][0xa7]" (identifier "uVar5") (= "=") (cast_expression "(uint)local_70[1][0xa7]" (( "(") (type_descriptor "uint" (type_identifier "uint")) () ")") (subscript_expression "local_70[1][0xa7]" (subscript_expression "local_70[1]" (identifier "local_70") ([ "[") (number_literal "1") (] "]")) ([ "[") (number_literal "0xa7") (] "]")))) (; ";")) (expression_statement "iVar7 = iVar8;" (assignment_expression "iVar7 = iVar8" (identifier "iVar7") (= "=") (identifier "iVar8")) (; ";")) (expression_statement "uVar9 = local_68;" (assignment_expression "uVar9 = local_68" (identifier "uVar9") (= "=") (identifier "local_68")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(local_68 < uVar5)" (( "(") (binary_expression "local_68 < uVar5" (identifier "local_68") (< "<") (identifier "uVar5")) () ")")) (; ";")) (expression_statement "local_74[0xa7] = iVar8;" (assignment_expression "local_74[0xa7] = iVar8" (subscript_expression "local_74[0xa7]" (identifier "local_74") ([ "[") (number_literal "0xa7") (] "]")) (= "=") (identifier "iVar8")) (; ";")) (expression_statement "param_3 = local_70[1];" (assignment_expression "param_3 = local_70[1]" (identifier "param_3") (= "=") (subscript_expression "local_70[1]" (identifier "local_70") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))\n    goto LAB_00026a5d;" (if "if") (parenthesized_expression "((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))" (( "(") (binary_expression "(local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0')))" (parenthesized_expression "(local_5b == '\0')" (( "(") (binary_expression "local_5b == '\0'" (identifier "local_5b") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (|| "||") (parenthesized_expression "((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0')))" (( "(") (parenthesized_expression "(local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))" (( "(") (binary_expression "local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0')" (binary_expression "local_5a == '\0'" (identifier "local_5a") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (&& "&&") (parenthesized_expression "(*(char *)(local_70[1] + 0xcc) == '\0')" (( "(") (binary_expression "*(char *)(local_70[1] + 0xcc) == '\0'" (pointer_expression "*(char *)(local_70[1] + 0xcc)" (* "*") (cast_expression "(char *)(local_70[1] + 0xcc)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70[1] + 0xcc)" (( "(") (binary_expression "local_70[1] + 0xcc" (subscript_expression "local_70[1]" (identifier "local_70") ([ "[") (number_literal "1") (] "]")) (+ "+") (number_literal "0xcc")) () ")")))) (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")"))) () ")")) () ")"))) () ")")) (goto_statement "goto LAB_00026a5d;" (goto "goto") (statement_identifier "LAB_00026a5d") (; ";"))) (expression_statement "local_70[1][0xb5] = (undefined *)local_74;" (assignment_expression "local_70[1][0xb5] = (undefined *)local_74" (subscript_expression "local_70[1][0xb5]" (subscript_expression "local_70[1]" (identifier "local_70") ([ "[") (number_literal "1") (] "]")) ([ "[") (number_literal "0xb5") (] "]")) (= "=") (cast_expression "(undefined *)local_74" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_74"))) (; ";")) (} "}")))) (if_statement "if (uVar5 == 0) {\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }\n  else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }" (if "if") (parenthesized_expression "(uVar5 == 0)" (( "(") (binary_expression "uVar5 == 0" (identifier "uVar5") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\nLAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }\n  }" ({ "{") (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;" (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_00026a37;" (goto "goto") (statement_identifier "LAB_00026a37") (; ";"))) (labeled_statement "LAB_00026bd5:\n    if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }" (statement_identifier "LAB_00026bd5") (: ":") (if_statement "if (param_3[0xb5] != (undefined *)0x0) {\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }" (if "if") (parenthesized_expression "(param_3[0xb5] != (undefined *)0x0)" (( "(") (binary_expression "param_3[0xb5] != (undefined *)0x0" (subscript_expression "param_3[0xb5]" (identifier "param_3") ([ "[") (number_literal "0xb5") (] "]")) (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n      FUN_00026290(param_3[0xb5]);\n      free(param_3[0xb5]);\n      param_3[0xb5] = (undefined *)0x0;\n    }" ({ "{") (expression_statement "FUN_00026290(param_3[0xb5]);" (call_expression "FUN_00026290(param_3[0xb5])" (identifier "FUN_00026290") (argument_list "(param_3[0xb5])" (( "(") (subscript_expression "param_3[0xb5]" (identifier "param_3") ([ "[") (number_literal "0xb5") (] "]")) () ")"))) (; ";")) (expression_statement "free(param_3[0xb5]);" (call_expression "free(param_3[0xb5])" (identifier "free") (argument_list "(param_3[0xb5])" (( "(") (subscript_expression "param_3[0xb5]" (identifier "param_3") ([ "[") (number_literal "0xb5") (] "]")) () ")"))) (; ";")) (expression_statement "param_3[0xb5] = (undefined *)0x0;" (assignment_expression "param_3[0xb5] = (undefined *)0x0" (subscript_expression "param_3[0xb5]" (identifier "param_3") ([ "[") (number_literal "0xb5") (] "]")) (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (} "}")) (else_clause "else {\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }" (else "else") (compound_statement "{\n    uVar9 = 0;\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);\n    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;\n    uVar9 = 0;\n    cVar14 = '\0';\n    do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);\n    if (cVar15 == '\0') goto LAB_00026bd5;\n  }" ({ "{") (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    } while (uVar9 != uVar5);" (do "do") (compound_statement "{\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }\n      uVar9 = uVar9 + 1;\n    }" ({ "{") (expression_statement "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);" (assignment_expression "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)((int)param_3[0xa6] + uVar9 * 4)" (* "*") (cast_expression "(int *)((int)param_3[0xa6] + uVar9 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3[0xa6] + uVar9 * 4)" (( "(") (binary_expression "(int)param_3[0xa6] + uVar9 * 4" (cast_expression "(int)param_3[0xa6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xa6]" (identifier "param_3") ([ "[") (number_literal "0xa6") (] "]"))) (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (if_statement "if (0x10d < iVar7) {\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }" (if "if") (parenthesized_expression "(0x10d < iVar7)" (( "(") (binary_expression "0x10d < iVar7" (number_literal "0x10d") (< "<") (identifier "iVar7")) () ")")) (compound_statement "{\n        if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }\n      }" ({ "{") (if_statement "if (iVar7 < 0x112) {\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }\n        else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" (if "if") (parenthesized_expression "(iVar7 < 0x112)" (( "(") (binary_expression "iVar7 < 0x112" (identifier "iVar7") (< "<") (number_literal "0x112")) () ")")) (compound_statement "{\n          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;\n        }" ({ "{") (if_statement "if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;" (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_000269ad;" (goto "goto") (statement_identifier "LAB_000269ad") (; ";"))) (} "}")) (else_clause "else if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" (else "else") (if_statement "if (iVar7 < 0x114) {\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" (if "if") (parenthesized_expression "(iVar7 < 0x114)" (( "(") (binary_expression "iVar7 < 0x114" (identifier "iVar7") (< "<") (number_literal "0x114")) () ")")) (compound_statement "{\nLAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);\n          goto LAB_000269bd;\n        }" ({ "{") (labeled_statement "LAB_000269ad:\n          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);" (statement_identifier "LAB_000269ad") (: ":") (expression_statement "param_3[0xca] = (undefined *)(local_70[0] + -0xa223);" (assignment_expression "param_3[0xca] = (undefined *)(local_70[0] + -0xa223)" (subscript_expression "param_3[0xca]" (identifier "param_3") ([ "[") (number_literal "0xca") (] "]")) (= "=") (cast_expression "(undefined *)(local_70[0] + -0xa223)" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_70[0] + -0xa223)" (( "(") (binary_expression "local_70[0] + -0xa223" (subscript_expression "local_70[0]" (identifier "local_70") ([ "[") (number_literal "0") (] "]")) (+ "+") (number_literal "-0xa223")) () ")")))) (; ";"))) (goto_statement "goto LAB_000269bd;" (goto "goto") (statement_identifier "LAB_000269bd") (; ";")) (} "}"))))) (} "}"))) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 != uVar5)" (( "(") (binary_expression "uVar9 != uVar5" (identifier "uVar9") (!= "!=") (identifier "uVar5")) () ")")) (; ";")) (if_statement "if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;" (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_00026a37;" (goto "goto") (statement_identifier "LAB_00026a37") (; ";"))) (expression_statement "uVar9 = 0;" (assignment_expression "uVar9 = 0" (identifier "uVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "cVar14 = '\0';" (assignment_expression "cVar14 = '\0'" (identifier "cVar14") (= "=") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) (; ";")) (do_statement "do {\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    } while (uVar9 != uVar5);" (do "do") (compound_statement "{\n      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);\n      cVar15 = *(char *)((int)param_3 + 0x331);\n      if (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }\n      uVar9 = uVar9 + 1;\n      cVar14 = cVar15;\n    }" ({ "{") (expression_statement "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);" (assignment_expression "iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4)" (identifier "iVar7") (= "=") (pointer_expression "*(int *)((int)param_3[0xa6] + uVar9 * 4)" (* "*") (cast_expression "(int *)((int)param_3[0xa6] + uVar9 * 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)param_3[0xa6] + uVar9 * 4)" (( "(") (binary_expression "(int)param_3[0xa6] + uVar9 * 4" (cast_expression "(int)param_3[0xa6]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xa6]" (identifier "param_3") ([ "[") (number_literal "0xa6") (] "]"))) (+ "+") (binary_expression "uVar9 * 4" (identifier "uVar9") (* "*") (number_literal "4"))) () ")"))))) (; ";")) (expression_statement "cVar15 = *(char *)((int)param_3 + 0x331);" (assignment_expression "cVar15 = *(char *)((int)param_3 + 0x331)" (identifier "cVar15") (= "=") (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 (iVar7 != 0x112) {\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }" (if "if") (parenthesized_expression "(iVar7 != 0x112)" (( "(") (binary_expression "iVar7 != 0x112" (identifier "iVar7") (!= "!=") (number_literal "0x112")) () ")")) (compound_statement "{\n        if (iVar7 == 0x113) goto LAB_00026a37;\n        cVar15 = cVar14;\n        if (iVar7 == 0x10a) {\n                    \n          abort();\n        }\n      }" ({ "{") (if_statement "if (iVar7 == 0x113) goto LAB_00026a37;" (if "if") (parenthesized_expression "(iVar7 == 0x113)" (( "(") (binary_expression "iVar7 == 0x113" (identifier "iVar7") (== "==") (number_literal "0x113")) () ")")) (goto_statement "goto LAB_00026a37;" (goto "goto") (statement_identifier "LAB_00026a37") (; ";"))) (expression_statement "cVar15 = cVar14;" (assignment_expression "cVar15 = cVar14" (identifier "cVar15") (= "=") (identifier "cVar14")) (; ";")) (if_statement "if (iVar7 == 0x10a) {\n                    \n          abort();\n        }" (if "if") (parenthesized_expression "(iVar7 == 0x10a)" (( "(") (binary_expression "iVar7 == 0x10a" (identifier "iVar7") (== "==") (number_literal "0x10a")) () ")")) (compound_statement "{\n                    \n          abort();\n        }" ({ "{") (expression_statement "abort();" (call_expression "abort()" (identifier "abort") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "uVar9 = uVar9 + 1;" (assignment_expression "uVar9 = uVar9 + 1" (identifier "uVar9") (= "=") (binary_expression "uVar9 + 1" (identifier "uVar9") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "cVar14 = cVar15;" (assignment_expression "cVar14 = cVar15" (identifier "cVar14") (= "=") (identifier "cVar15")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(uVar9 != uVar5)" (( "(") (binary_expression "uVar9 != uVar5" (identifier "uVar9") (!= "!=") (identifier "uVar5")) () ")")) (; ";")) (if_statement "if (cVar15 == '\0') goto LAB_00026bd5;" (if "if") (parenthesized_expression "(cVar15 == '\0')" (( "(") (binary_expression "cVar15 == '\0'" (identifier "cVar15") (== "==") (char_literal "'\0'" (' "'") (escape_sequence "\0") (' "'"))) () ")")) (goto_statement "goto LAB_00026bd5;" (goto "goto") (statement_identifier "LAB_00026bd5") (; ";"))) (} "}")))) (expression_statement "free(param_3[0xb4]);" (call_expression "free(param_3[0xb4])" (identifier "free") (argument_list "(param_3[0xb4])" (( "(") (subscript_expression "param_3[0xb4]" (identifier "param_3") ([ "[") (number_literal "0xb4") (] "]")) () ")"))) (; ";")) (expression_statement "free(param_3[0xa0]);" (call_expression "free(param_3[0xa0])" (identifier "free") (argument_list "(param_3[0xa0])" (( "(") (subscript_expression "param_3[0xa0]" (identifier "param_3") ([ "[") (number_literal "0xa0") (] "]")) () ")"))) (; ";")) (expression_statement "free(param_3[0xc5]);" (call_expression "free(param_3[0xc5])" (identifier "free") (argument_list "(param_3[0xc5])" (( "(") (subscript_expression "param_3[0xc5]" (identifier "param_3") ([ "[") (number_literal "0xc5") (] "]")) () ")"))) (; ";")) (expression_statement "iVar7 = (int)param_3[200];" (assignment_expression "iVar7 = (int)param_3[200]" (identifier "iVar7") (= "=") (cast_expression "(int)param_3[200]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[200]" (identifier "param_3") ([ "[") (number_literal "200") (] "]")))) (; ";")) (if_statement "if (iVar7 != 0) {\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }" (if "if") (parenthesized_expression "(iVar7 != 0)" (( "(") (binary_expression "iVar7 != 0" (identifier "iVar7") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n    iVar8 = local_64;\n    if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }\n    free((void *)(iVar7 + -8));\n  }" ({ "{") (expression_statement "iVar8 = local_64;" (assignment_expression "iVar8 = local_64" (identifier "iVar8") (= "=") (identifier "local_64")) (; ";")) (if_statement "if (-1 < (int)param_3[0xbd]) {\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }" (if "if") (parenthesized_expression "(-1 < (int)param_3[0xbd])" (( "(") (binary_expression "-1 < (int)param_3[0xbd]" (number_literal "-1") (< "<") (cast_expression "(int)param_3[0xbd]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xbd]" (identifier "param_3") ([ "[") (number_literal "0xbd") (] "]")))) () ")")) (compound_statement "{\n      do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);\n    }" ({ "{") (do_statement "do {\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      } while (iVar13 < (int)param_3[0xbd]);" (do "do") (compound_statement "{\n        iVar13 = iVar8 + 1;\n        free(*(void **)(iVar7 + iVar8 * 4));\n        iVar7 = (int)param_3[200];\n        iVar8 = iVar13;\n      }" ({ "{") (expression_statement "iVar13 = iVar8 + 1;" (assignment_expression "iVar13 = iVar8 + 1" (identifier "iVar13") (= "=") (binary_expression "iVar8 + 1" (identifier "iVar8") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "free(*(void **)(iVar7 + iVar8 * 4));" (call_expression "free(*(void **)(iVar7 + iVar8 * 4))" (identifier "free") (argument_list "(*(void **)(iVar7 + iVar8 * 4))" (( "(") (pointer_expression "*(void **)(iVar7 + iVar8 * 4)" (* "*") (cast_expression "(void **)(iVar7 + iVar8 * 4)" (( "(") (type_descriptor "void **" (primitive_type "void") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar7 + iVar8 * 4)" (( "(") (binary_expression "iVar7 + iVar8 * 4" (identifier "iVar7") (+ "+") (binary_expression "iVar8 * 4" (identifier "iVar8") (* "*") (number_literal "4"))) () ")")))) () ")"))) (; ";")) (expression_statement "iVar7 = (int)param_3[200];" (assignment_expression "iVar7 = (int)param_3[200]" (identifier "iVar7") (= "=") (cast_expression "(int)param_3[200]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[200]" (identifier "param_3") ([ "[") (number_literal "200") (] "]")))) (; ";")) (expression_statement "iVar8 = iVar13;" (assignment_expression "iVar8 = iVar13" (identifier "iVar8") (= "=") (identifier "iVar13")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar13 < (int)param_3[0xbd])" (( "(") (binary_expression "iVar13 < (int)param_3[0xbd]" (identifier "iVar13") (< "<") (cast_expression "(int)param_3[0xbd]" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (subscript_expression "param_3[0xbd]" (identifier "param_3") ([ "[") (number_literal "0xbd") (] "]")))) () ")")) (; ";")) (} "}"))) (expression_statement "free((void *)(iVar7 + -8));" (call_expression "free((void *)(iVar7 + -8))" (identifier "free") (argument_list "((void *)(iVar7 + -8))" (( "(") (cast_expression "(void *)(iVar7 + -8)" (( "(") (type_descriptor "void *" (primitive_type "void") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar7 + -8)" (( "(") (binary_expression "iVar7 + -8" (identifier "iVar7") (+ "+") (number_literal "-8")) () ")"))) () ")"))) (; ";")) (} "}"))) (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 "*(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 "param_3[0xca] = (undefined *)local_50;" (assignment_expression "param_3[0xca] = (undefined *)local_50" (subscript_expression "param_3[0xca]" (identifier "param_3") ([ "[") (number_literal "0xca") (] "]")) (= "=") (cast_expression "(undefined *)local_50" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "local_50"))) (; ";")) (labeled_statement "LAB_00026a37:\n  FUN_00022280();" (statement_identifier "LAB_00026a37") (: ":") (expression_statement "FUN_00022280();" (call_expression "FUN_00022280()" (identifier "FUN_00022280") (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_000269bd:\n  if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }" (statement_identifier "LAB_000269bd") (: ":") (if_statement "if (param_3[0xb5] != (undefined *)0x0) {\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\n  }" (if "if") (parenthesized_expression "(param_3[0xb5] != (undefined *)0x0)" (( "(") (binary_expression "param_3[0xb5] != (undefined *)0x0" (subscript_expression "param_3[0xb5]" (identifier "param_3") ([ "[") (number_literal "0xb5") (] "]")) (!= "!=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    *(undefined1 *)(param_3 + 0xac) = 1;\n    FUN_00022280();\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_00022280();" (call_expression "FUN_00022280()" (identifier "FUN_00022280") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))) (if_statement "if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_20 == *(int *)(in_GS_OFFSET + 0x14))" (( "(") (binary_expression "local_20 == *(int *)(in_GS_OFFSET + 0x14)" (identifier "local_20") (== "==") (pointer_expression "*(int *)(in_GS_OFFSET + 0x14)" (* "*") (cast_expression "(int *)(in_GS_OFFSET + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(in_GS_OFFSET + 0x14)" (( "(") (binary_expression "in_GS_OFFSET + 0x14" (identifier "in_GS_OFFSET") (+ "+") (number_literal "0x14")) () ")"))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "FUN_00038830();" (call_expression "FUN_00038830()" (identifier "FUN_00038830") (argument_list "()" (( "(") () ")"))) (; ";")) (} "}")))

/* WARNING: Function: __x86.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */
/* WARNING: Unknown calling convention */

void function_1(char *s,size_t len,type_1 *d,type_2 searchflag)

{
  int var_26;
  type_2 var_2;
  bool bVar3;
  type_1 *pdVar4;
  type_3 tVar5;
  type_1 *d_00;
  size_t var_9;
  type_4 *__dest;
  type_3 *ptVar7;
  ptrdiff_t var_19;
  type_5 var_20;
  type_6 **var_24;
  char *pcVar11;
  int var_8;
  size_t sVar13;
  type_5 var_16;
  char cVar15;
  char var_23;
  type_1 *pdVar17;
  type_5 var_17;
  int var_1;
  type_7 bVar19;
  type_5 var_15;
  type_3 *local_60;
  type_7 var_21;
  type_4 ccl;
  
  bVar19 = 0;
  var_26 = *(int *)(var_1 + 0x14);
  (d->var_6).laststart = true;
  (d->var_6).lasttok = -1;
  (d->var_6).ptr = s;
  (d->var_6).left = len;
  var_2 = (d->syntax).syntax_bits_set;
  pdVar4 = (type_1 *)(type_5)var_2;
  if (var_2 == false) {
    pcVar11 = "no syntax specified";
LAB_00026c24:
    pcVar11 = (char *)var_3(0,pcVar11,5,pdVar4);
                    /* WARNING: Subroutine does not return */
    var_4(pcVar11);
  }
  if (d->nregexps == 0) {
    var_5(d,0x10b);
  }
  tVar5 = var_6(d);
  (d->parse).tok = tVar5;
  (d->parse).depth = d->depth;
  var_7(d);
  var_8 = (d->parse).tok;
  while (((var_8 - 0x106U & 0xfffffffd) != 0 && (-1 < var_8))) {
    var_7(d);
    var_5(d,0x105);
    var_8 = (d->parse).tok;
  }
  while (var_8 == 0x106) {
    tVar5 = var_6(d);
    (d->parse).tok = tVar5;
    var_7(d);
    var_8 = (d->parse).tok;
    while (((var_8 - 0x106U & 0xfffffffd) != 0 && (-1 < var_8))) {
      var_7(d);
      var_5(d,0x105);
      var_8 = (d->parse).tok;
    }
    var_5(d,0x106);
    var_8 = (d->parse).tok;
  }
  if (var_8 != -1) {
    pcVar11 = "unbalanced )";
    pdVar4 = d;
    goto LAB_00026c24;
  }
  var_5(d,~d->nregexps);
  var_5(d,0x105);
  var_9 = d->nregexps;
  if (var_9 != 0) {
    var_5(d,0x106);
    var_9 = d->nregexps;
  }
  d->nregexps = var_9 + 1;
  d_00 = (type_1 *)var_10(0x834);
  pdVar4 = d;
  pdVar17 = d_00;
  for (var_8 = 0x20d; var_8 != 0; var_8 = var_8 + -1) {
    (pdVar17->syntax).syntax_bits = (pdVar4->syntax).syntax_bits;
    pdVar4 = (type_1 *)((int)pdVar4 + (type_5)bVar19 * -8 + 4);
    pdVar17 = (type_1 *)((int)pdVar17 + (type_5)bVar19 * -8 + 4);
  }
  (d_00->localeinfo).multibyte = false;
  d_00->multibyte_prop = (char *)0x0;
  d_00->superset = (type_1 *)0x0;
  d_00->dfaexec = dfaexec_sb;
  d_00->states = (type_8 *)0x0;
  d_00->sindex = 0;
  d_00->constraints = (int *)0x0;
  d_00->separates = (int *)0x0;
  d_00->follows = (type_9 *)0x0;
  d_00->tralloc = 0;
  var_9 = d_00->calloc << 5;
  d_00->trans = (type_6 **)0x0;
  d_00->fails = (type_6 **)0x0;
  d_00->success = (char *)0x0;
  d_00->newlines = (type_6 *)0x0;
  if (((int)var_9 < 0) || ((type_5)d_00->calloc >> 0x1b != 0)) {
LAB_00026c0e:
                    /* WARNING: Subroutine does not return */
    var_11();
  }
  __dest = (type_4 *)var_10(var_9);
  var_8 = d->cindex;
  d_00->charclasses = __dest;
  if (var_8 != 0) {
    var_12(__dest,d->charclasses,var_8 << 5);
  }
  var_9 = d->tindex << 3;
  if (((int)var_9 < 0) || (d->tindex >> 0x1d != 0)) goto LAB_00026c0e;
  ptVar7 = (type_3 *)var_10(var_9);
  d_00->tokens = ptVar7;
  var_9 = d->tindex;
  d_00->talloc = var_9 * 2;
  if (var_9 == 0) {
    d_00->tindex = 0;
LAB_00026a5d:
    var_13(d_00);
    var_14(d_00);
    var_20 = d->tindex;
  }
  else {
    local_60 = d->tokens;
    var_21 = 0;
    var_15 = 0;
    bVar3 = false;
    var_9 = 0;
    do {
      var_20 = var_15 + 1;
      sVar13 = var_9 + 1;
      var_16 = local_60[var_15];
      if (var_16 - 0x10a < 10) {
        var_17 = 1 << ((type_7)(var_16 - 0x10a) & 0x1f);
        if ((var_17 & 0x301) == 0) {
          if (((var_17 & 0xf0) == 0) || ((d->localeinfo).multibyte == false)) {
            d_00->tokens[var_9] = var_16;
            var_15 = var_20;
          }
          else {
            d_00->tokens[var_9] = 0x100;
            var_15 = var_20;
          }
        }
        else {
          ccl.w[0] = 0xffffffff;
          ccl.w[1] = 0xffffffff;
          ccl.w[2] = 0xffffffff;
          ccl.w[3] = 0xffffffff;
          ccl.w[4] = 0xffffffff;
          ccl.w[5] = 0xffffffff;
          ccl.w[6] = 0xffffffff;
          ccl.w[7] = 0xffffffff;
          var_19 = var_18(d_00,&ccl);
          ptVar7 = d_00->tokens;
          sVar13 = var_9 + 2;
          ptVar7[var_9] = var_19 + 0x114;
          ptVar7[var_9 + 1] = 0x102;
          local_60 = d->tokens;
          var_8 = var_15 + 1;
          var_15 = var_15 + 2;
          var_21 = var_2;
          if (2 < local_60[var_8] - 0x101U) {
            var_15 = var_20;
          }
        }
      }
      else {
        d_00->tokens[var_9] = var_16;
        var_15 = var_20;
        if (var_16 < 0x100 || 0x113 < (int)var_16) {
          bVar3 = var_16 < 0x100 || 0x113 < (int)var_16;
        }
      }
      var_20 = d->tindex;
      var_9 = sVar13;
    } while (var_15 < var_20);
    d_00->tindex = sVar13;
    if ((!bVar3) || ((var_21 == 0 && ((d->localeinfo).multibyte == false)))) goto LAB_00026a5d;
    d->superset = d_00;
  }
  if (var_20 == 0) {
    if ((d->localeinfo).using_utf8 == false) goto LAB_00026a37;
LAB_00026bd5:
    if (d->superset != (type_1 *)0x0) {
      var_13(d->superset);
      var_14(d->superset);
      d->superset = (type_1 *)0x0;
    }
  }
  else {
    var_16 = 0;
    do {
      var_8 = d->tokens[var_16];
      if (0x10d < var_8) {
        if (var_8 < 0x112) {
          if ((d->localeinfo).multibyte != false) goto LAB_000269ad;
        }
        else if (var_8 < 0x114) {
LAB_000269ad:
          d->dfaexec = dfaexec_noop;
          goto LAB_000269bd;
        }
      }
      var_16 = var_16 + 1;
    } while (var_16 != var_20);
    var_2 = (d->localeinfo).using_utf8;
    if (var_2 == false) goto LAB_00026a37;
    var_16 = 0;
    cVar15 = '\0';
    do {
      var_8 = d->tokens[var_16];
      var_23 = var_2;
      if (var_8 != 0x112) {
        if (var_8 == 0x113) goto LAB_00026a37;
        var_23 = cVar15;
        if (var_8 == 0x10a) {
                    /* WARNING: Subroutine does not return */
          var_22();
        }
      }
      var_16 = var_16 + 1;
      cVar15 = var_23;
    } while (var_16 != var_20);
    if (var_23 == '\0') goto LAB_00026bd5;
  }
  var_14(d->multibyte_prop);
  var_14((d->var_6).brack.chars);
  var_14((d->mb_follows).elems);
  var_24 = d->mb_trans;
  if (var_24 != (type_6 **)0x0) {
    if (-1 < d->tralloc) {
      var_8 = -1;
      do {
        var_24 = var_24 + var_8;
        var_8 = var_8 + 1;
        var_14(*var_24);
        var_24 = d->mb_trans;
      } while (var_8 < d->tralloc);
    }
    var_14(var_24 + -2);
  }
  (d->localeinfo).multibyte = false;
  d->fast = true;
  d->dfaexec = dfaexec_sb;
LAB_00026a37:
  var_25(d,searchflag);
LAB_000269bd:
  if (d->superset != (type_1 *)0x0) {
    d->fast = true;
    var_25(d->superset,searchflag);
  }
  if (var_26 == *(int *)(var_1 + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  var_27();
}


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

/* WARNING: Function: __i686.get_pc_thunk.ax replaced with injection: get_pc_thunk_ax */

void MASKED(undefined4 param_1,undefined4 param_2,undefined **param_3,undefined4 param_4)

{
  int iVar1;
  uint uVar2;
  undefined4 uVar3;
  void *__dest;
  int iVar4;
  uint uVar5;
  char *pcVar6;
  int iVar7;
  int iVar8;
  uint uVar9;
  undefined1 *puVar10;
  undefined1 *puVar11;
  undefined4 *puVar12;
  int iVar13;
  char cVar14;
  char cVar15;
  undefined4 *puVar16;
  uint uVar17;
  int in_GS_OFFSET;
  byte bVar18;
  undefined4 uStackY_90;
  undefined4 uStack_80;
  undefined1 auStack_7c [8];
  undefined4 *local_74;
  undefined **local_70 [2];
  uint local_68;
  int local_64;
  int local_60;
  char local_5b;
  char local_5a;
  char local_59;
  undefined4 *local_58;
  undefined4 local_54;
  undefined **local_50;
  undefined4 local_40;
  undefined4 local_3c;
  undefined4 local_38;
  undefined4 local_34;
  undefined4 local_30;
  undefined4 local_2c;
  undefined4 local_28;
  undefined4 local_24;
  int local_20;
  
  bVar18 = 0;
  local_70[0] = &__DT_PLTGOT;
  puVar11 = auStack_7c;
  local_54 = param_4;
  local_20 = *(int *)(in_GS_OFFSET + 0x14);
  *(undefined1 *)(param_3 + 0xa3) = 1;
  param_3[0x98] = (undefined *)0xffffffff;
  param_3[0x96] = (undefined *)param_1;
  param_3[0x97] = (undefined *)param_2;
  local_59 = *(char *)(param_3 + 1);
  if (local_59 == '\0') {
    puVar10 = &stack0xffffff7c;
    pcVar6 = "no syntax specified";
    goto LAB_00026c24;
  }
  if (param_3[0xab] == (undefined *)0x0) {
    FUN_000221a0();
  }
  uVar3 = FUN_00024d90();
  param_3[0xa4] = (undefined *)uVar3;
  param_3[0xa5] = param_3[0xa9];
  FUN_00025a60();
  local_64 = (int)param_3[0xa4];
  if (((local_64 - 0x106U & 0xfffffffd) != 0) && (-1 < local_64)) {
    do {
      FUN_00025a60();
      FUN_000221a0();
      iVar7 = (int)param_3[0xa4];
      if ((iVar7 - 0x106U & 0xfffffffd) == 0) break;
    } while (-1 < iVar7);
    local_64 = iVar7;
  }
  if (local_64 == 0x106) {
    do {
      uVar3 = FUN_00024d90();
      param_3[0xa4] = (undefined *)uVar3;
      FUN_00025a60();
      iVar7 = (int)param_3[0xa4];
      while (((iVar7 - 0x106U & 0xfffffffd) != 0 && (-1 < iVar7))) {
        FUN_00025a60();
        FUN_000221a0();
        iVar7 = (int)param_3[0xa4];
      }
      FUN_000221a0();
    } while (param_3[0xa4] == (undefined *)0x106);
    local_64 = (int)param_3[0xa4];
  }
  if (local_64 != -1) {
    do {
      *(undefined ***)(puVar11 + -4) = param_3;
      puVar10 = puVar11 + -8;
      *(undefined4 *)(puVar11 + -8) = 5;
      pcVar6 = (char *)(*(int *)(puVar11 + 0xc) + -0xcb6e);
LAB_00026c24:
      *(char **)(puVar10 + -4) = pcVar6;
      puVar11 = puVar10 + -8;
      *(undefined4 *)(puVar10 + -8) = 0;
      *(undefined4 *)(puVar10 + -0xc) = 0x26c2e;
      uVar3 = dcgettext();
      *(undefined4 *)(puVar10 + -8) = uVar3;
      *(undefined4 *)(puVar10 + -0xc) = 0x26c36;
      FUN_000143e0();
    } while( true );
  }
  FUN_000221a0();
  FUN_000221a0();
  iVar7 = (int)param_3[0xab];
  if (iVar7 != 0) {
    FUN_000221a0();
    iVar7 = (int)param_3[0xab];
  }
  param_3[0xab] = (undefined *)(iVar7 + 1);
  local_74 = (undefined4 *)FUN_0002efa0(0x834);
  puVar12 = param_3;
  puVar16 = local_74;
  for (iVar7 = 0x20d; iVar7 != 0; iVar7 = iVar7 + -1) {
    *puVar16 = *puVar12;
    puVar12 = puVar12 + (uint)bVar18 * -2 + 1;
    puVar16 = puVar16 + (uint)bVar18 * -2 + 1;
  }
  *(undefined1 *)(local_74 + 0xcc) = 0;
  local_74[0xb4] = 0;
  local_74[0xb5] = 0;
  local_50 = local_70[0] + -0x98c7;
  local_74[0xca] = local_50;
  local_74[0xb6] = 0;
  local_74[0xb7] = 0;
  local_74[0xbb] = 0;
  local_74[0xbc] = 0;
  local_74[0xb9] = 0;
  local_74[0xbd] = 0;
  iVar7 = local_74[0x94] << 5;
  local_74[0xc0] = 0;
  local_74[0xc1] = 0;
  local_74[0xc2] = 0;
  local_74[0xc3] = 0;
  if ((iVar7 < 0) || ((uint)local_74[0x94] >> 0x1b != 0)) {
LAB_00026c0e:
                    /* WARNING: Subroutine does not return */
    FUN_0002f1c0();
  }
  __dest = (void *)FUN_0002efa0(iVar7);
  iVar7 = (int)param_3[0x93];
  local_74[0x92] = __dest;
  if (iVar7 != 0) {
    memcpy(__dest,param_3[0x92],iVar7 << 5);
  }
  iVar7 = (int)param_3[0xa7] << 3;
  if ((iVar7 < 0) || ((uint)param_3[0xa7] >> 0x1d != 0)) goto LAB_00026c0e;
  uVar3 = FUN_0002efa0(iVar7);
  local_74[0xa6] = uVar3;
  iVar7 = (int)param_3[0xa7];
  local_74[0xa8] = iVar7 * 2;
  if (iVar7 == 0) {
    local_74[0xa7] = 0;
LAB_00026a5d:
    puVar12 = local_74;
    FUN_00026290(local_74);
    free(puVar12);
    uVar5 = (uint)param_3[0xa7];
  }
  else {
    local_60 = (int)param_3[0xa6];
    local_5a = '\0';
    local_70[1] = param_3;
    local_58 = &local_40;
    local_5b = '\0';
    iVar7 = 0;
    uVar9 = 0;
    do {
      puVar12 = local_74;
      local_68 = uVar9 + 1;
      iVar13 = iVar7 * 4;
      iVar8 = iVar7 + 1;
      uVar5 = *(uint *)(local_60 + uVar9 * 4);
      uVar2 = local_68;
      if (uVar5 - 0x10a < 10) {
        uVar17 = 1 << ((byte)(uVar5 - 0x10a) & 0x1f);
        if ((uVar17 & 0x301) == 0) {
          if (((uVar17 & 0xf0) == 0) || (*(char *)(local_70[1] + 0xcc) == '\0')) {
            *(uint *)(iVar13 + local_74[0xa6]) = uVar5;
          }
          else {
            *(uint *)(iVar13 + local_74[0xa6]) = 0x100;
          }
        }
        else {
          local_40 = 0xffffffff;
          local_3c = 0xffffffff;
          local_38 = 0xffffffff;
          local_34 = 0xffffffff;
          local_30 = 0xffffffff;
          local_2c = 0xffffffff;
          local_28 = 0xffffffff;
          local_24 = 0xffffffff;
          iVar4 = FUN_00020370();
          iVar1 = puVar12[0xa6];
          iVar8 = iVar7 + 2;
          *(int *)(iVar1 + iVar13) = iVar4 + 0x114;
          *(undefined4 *)(iVar1 + 4 + iVar13) = 0x102;
          local_60 = (int)local_70[1][0xa6];
          local_5a = local_59;
          uVar2 = uVar9 + 2;
          if (2 < *(int *)(local_60 + 4 + uVar9 * 4) - 0x101U) {
            uVar2 = local_68;
          }
        }
      }
      else {
        *(uint *)(local_74[0xa6] + iVar7 * 4) = uVar5;
        if (uVar5 < 0x100 || 0x113 < (int)uVar5) {
          local_5b = uVar5 < 0x100 || 0x113 < (int)uVar5;
        }
      }
      local_68 = uVar2;
      uVar5 = (uint)local_70[1][0xa7];
      iVar7 = iVar8;
      uVar9 = local_68;
    } while (local_68 < uVar5);
    local_74[0xa7] = iVar8;
    param_3 = local_70[1];
    if ((local_5b == '\0') || ((local_5a == '\0' && (*(char *)(local_70[1] + 0xcc) == '\0'))))
    goto LAB_00026a5d;
    local_70[1][0xb5] = (undefined *)local_74;
  }
  if (uVar5 == 0) {
    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;
LAB_00026bd5:
    if (param_3[0xb5] != (undefined *)0x0) {
      FUN_00026290(param_3[0xb5]);
      free(param_3[0xb5]);
      param_3[0xb5] = (undefined *)0x0;
    }
  }
  else {
    uVar9 = 0;
    do {
      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);
      if (0x10d < iVar7) {
        if (iVar7 < 0x112) {
          if (*(char *)(param_3 + 0xcc) != '\0') goto LAB_000269ad;
        }
        else if (iVar7 < 0x114) {
LAB_000269ad:
          param_3[0xca] = (undefined *)(local_70[0] + -0xa223);
          goto LAB_000269bd;
        }
      }
      uVar9 = uVar9 + 1;
    } while (uVar9 != uVar5);
    if (*(char *)((int)param_3 + 0x331) == '\0') goto LAB_00026a37;
    uVar9 = 0;
    cVar14 = '\0';
    do {
      iVar7 = *(int *)((int)param_3[0xa6] + uVar9 * 4);
      cVar15 = *(char *)((int)param_3 + 0x331);
      if (iVar7 != 0x112) {
        if (iVar7 == 0x113) goto LAB_00026a37;
        cVar15 = cVar14;
        if (iVar7 == 0x10a) {
                    /* WARNING: Subroutine does not return */
          abort();
        }
      }
      uVar9 = uVar9 + 1;
      cVar14 = cVar15;
    } while (uVar9 != uVar5);
    if (cVar15 == '\0') goto LAB_00026bd5;
  }
  free(param_3[0xb4]);
  free(param_3[0xa0]);
  free(param_3[0xc5]);
  iVar7 = (int)param_3[200];
  if (iVar7 != 0) {
    iVar8 = local_64;
    if (-1 < (int)param_3[0xbd]) {
      do {
        iVar13 = iVar8 + 1;
        free(*(void **)(iVar7 + iVar8 * 4));
        iVar7 = (int)param_3[200];
        iVar8 = iVar13;
      } while (iVar13 < (int)param_3[0xbd]);
    }
    free((void *)(iVar7 + -8));
  }
  *(undefined1 *)(param_3 + 0xcc) = 0;
  *(undefined1 *)(param_3 + 0xac) = 1;
  param_3[0xca] = (undefined *)local_50;
LAB_00026a37:
  FUN_00022280();
LAB_000269bd:
  if (param_3[0xb5] != (undefined *)0x0) {
    *(undefined1 *)(param_3 + 0xac) = 1;
    FUN_00022280();
  }
  if (local_20 == *(int *)(in_GS_OFFSET + 0x14)) {
    return;
  }
                    /* WARNING: Subroutine does not return */
  FUN_00038830();
}

