
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */
/* DWARF original prototype: void makerle(buf * b, termline * ldata,
   _func_void_buf_ptr_termchar_ptr_ulong_ptr * makeliteral, termline * ldata) */

void makerle(buf *b,termline *ldata,_func_void_buf_ptr_termchar_ptr_ulong_ptr *makeliteral,
            termline *ldata_1)

{
  bool bVar1;
  char cVar2;
  ulong uVar3;
  int iVar4;
  termline *ptVar5;
  uchar *puVar6;
  void *pvVar7;
  int iVar8;
  ushort *puVar9;
  Terminal *term;
  tree234 *ptVar10;
  termline *ptVar11;
  uint uVar12;
  int iVar13;
  int iVar14;
  uchar uVar15;
  int iVar16;
  int *piVar17;
  int iVar18;
  int iVar19;
  code *pcVar20;
  undefined *puVar21;
  undefined *puVar22;
  buf bStack_90;
  Terminal *pTStack_84;
  _func_void_buf_ptr_termchar_ptr_ulong_ptr *p_Stack_7c;
  termline *ptStack_78;
  int iStack_74;
  int iStack_70;
  int iStack_6c;
  termline *ptStack_68;
  code *pcStack_64;
  uchar *local_40;
  int local_3c;
  ulong state;
  int local_2c;
  
  puVar22 = PTR___stack_chk_guard_00112630;
  local_3c = b->len;
  local_2c = *(int *)PTR___stack_chk_guard_00112630;
  pcVar20 = (code *)(PTR_LAB_00111ad8 + -0x18c);
  iVar16 = 0;
  iVar14 = 0;
  iVar13 = 0;
  ptVar11 = (termline *)((int)&ldata[-1].chars + 3);
  state = 0;
  add(b,'\0');
  iVar8 = 0;
  if (0 < (int)ldata) {
    do {
      ptVar5 = ptVar11;
      iVar19 = b->len;
      (*(code *)ldata_1)(b,makeliteral,&state);
      makeliteral = makeliteral + 0xc;
      iVar18 = b->len - iVar19;
      if (iVar18 == iVar13) {
        puVar6 = b->data;
        iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13);
        if (iVar4 != 0) goto LAB_00091d8c;
        if (iVar13 < 2) {
          if (iVar16 != 0) goto LAB_00091fbc;
          iVar16 = 1;
          goto LAB_00091d90;
        }
        ldata = (termline *)(iVar8 + -1);
        if (iVar16 == 0) {
          if (ldata == (termline *)0x0) goto LAB_00091e58;
LAB_00091fcc:
          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);
          ldata = (termline *)((int)&ldata[-1].chars + 3);
          b->len = iVar13 + iVar14 + 1;
          if ((termline *)0x7f < ldata) goto LAB_00092098;
          b->data[local_3c] = (uchar)ldata;
          local_3c = iVar14;
        }
        else {
LAB_00091fbc:
          ldata = (termline *)(iVar8 + -2);
          if (iVar8 + -1 < 1) goto LAB_000920bc;
          iVar14 = iVar14 - iVar13;
          if (ldata != (termline *)0x0) goto LAB_00091fcc;
LAB_00091e58:
          bVar1 = local_3c + 1 != iVar14;
          iVar14 = iVar13 + iVar14;
          if (bVar1) goto LAB_00092068;
          b->len = iVar14;
        }
        if (iVar16 == 0) {
          iVar14 = 2;
          if (0 < (int)ptVar5) goto LAB_00091e7c;
          local_40 = b->data;
          uVar15 = 0x80;
        }
        else {
          iVar14 = 3;
          if ((int)ptVar5 < 1) {
            local_40 = b->data;
            uVar15 = 0x81;
          }
          else {
LAB_00091e7c:
            iVar8 = b->len;
            do {
              uVar3 = state;
              (*(code *)ldata_1)(b,makeliteral,&state);
              iVar16 = b->len;
              b->len = iVar8;
              cVar2 = (char)iVar14;
              if (iVar13 != iVar16 - iVar8) {
                local_40 = b->data;
LAB_00091f08:
                uVar15 = cVar2 + '~';
                state = uVar3;
                goto LAB_00091f18;
              }
              local_40 = b->data;
              iVar16 = (*(code *)PTR_memcmp_00112430)
                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);
              if (iVar16 != 0) goto LAB_00091f08;
              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);
              makeliteral = makeliteral + 0xc;
              iVar14 = iVar14 + 1;
              if (ptVar5 == (termline *)0x0) {
                uVar15 = cVar2 + '\x7f';
                goto LAB_00091f18;
              }
            } while (iVar14 != 0x81);
            uVar15 = 0xff;
          }
        }
LAB_00091f18:
        iVar16 = 0;
        iVar13 = 0;
        iVar14 = 0;
        local_40[local_3c] = uVar15;
        local_3c = b->len;
        (*pcVar20)(b,0);
        iVar8 = 0;
      }
      else {
LAB_00091d8c:
        iVar16 = 0;
LAB_00091d90:
        iVar8 = iVar8 + 1;
        iVar13 = iVar18;
        iVar14 = iVar19;
        if (iVar8 == 0x80) {
          iVar16 = 0;
          iVar14 = 0;
          iVar13 = 0;
          b->data[local_3c] = '\x7f';
          local_3c = b->len;
          (*pcVar20)(b,0);
          iVar8 = 0;
        }
      }
      ptVar11 = (termline *)((int)&ptVar5[-1].chars + 3);
      ldata = ptVar5;
    } while (0 < (int)ptVar5);
  }
  ptVar5 = ptVar11;
  if (iVar8 == 0) {
    b->len = local_3c;
  }
  else {
    if (0x80 < iVar8) {
      (*(code *)PTR___assert_fail_00111f50)
                (PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,
                 PTR_E1_202__001112f8 + 0x63ac);
LAB_00092068:
      (*(code *)PTR___assert_fail_00111f50)
                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,
                 PTR_E1_202__001112f8 + 0x63ac);
      goto LAB_0009208c;
    }
    b->data[local_3c] = (char)iVar8 + 0xff;
  }
  if (local_2c == *(int *)puVar22) {
    return;
  }
LAB_0009208c:
  (*(code *)PTR___stack_chk_fail_001122c8)();
LAB_00092098:
  (*(code *)PTR___assert_fail_00111f50)
            (PTR_E1_202__001112f8 + 0x58d4,PTR_E1_202__001112f8 + 0x5830,0x1d8,
             PTR_E1_202__001112f8 + 0x63ac);
LAB_000920bc:
  pcVar20 = compressline;
  puVar9 = (ushort *)(PTR_E1_202__001112f8 + 0x58b0);
  puVar21 = PTR___assert_fail_00111f50;
  (*(code *)PTR___assert_fail_00111f50)
            (puVar9,PTR_E1_202__001112f8 + 0x5830,0x1c7,PTR_E1_202__001112f8 + 0x63ac);
  puVar22 = puVar21 + 0x871d0;
  piVar17 = *(int **)(puVar21 + 0x80550);
  iVar8 = *(int *)(puVar9 + 2);
  bStack_90.data = (uchar *)0x0;
  bStack_90.len = 0;
  bStack_90.size = 0;
  pTStack_84 = (Terminal *)*piVar17;
  p_Stack_7c = makeliteral;
  ptStack_78 = ptVar5;
  iStack_74 = iVar13;
  iStack_70 = iVar14;
  iStack_6c = iVar16;
  ptStack_68 = ldata;
  pcStack_64 = pcVar20;
  for (; 0x7f < iVar8; iVar8 = iVar8 >> 7) {
    add(&bStack_90,(byte)iVar8 | 0x80);
  }
  add(&bStack_90,(byte)iVar8);
  for (uVar12 = (uint)*puVar9; 0x7f < uVar12; uVar12 = (int)uVar12 >> 7) {
    add(&bStack_90,(byte)uVar12 | 0x80);
  }
  add(&bStack_90,(byte)uVar12);
  makerle(&bStack_90,*(termline **)(puVar9 + 2),
          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),
          (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x58));
  makerle(&bStack_90,*(termline **)(puVar9 + 2),
          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),
          (termline *)(*(int *)(puVar21 + 0x7f9f8) + -0xd4));
  ptVar11 = (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x1138);
  makerle(&bStack_90,*(termline **)(puVar9 + 2),
          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),ptVar11);
  iVar14 = 1;
  iVar13 = bStack_90.len;
  (**(code **)(puVar21 + 0x7f310))(bStack_90.data);
  if (pTStack_84 == (Terminal *)*piVar17) {
    return;
  }
  pcVar20 = *(code **)(puVar21 + 0x801e8);
  term = pTStack_84;
  (*pcVar20)();
  if (iVar13 == 0) {
    iVar8 = iVar14;
    if (term->alt_which != 0) {
      puVar22 = (undefined *)0x0;
    }
  }
  else {
    puVar22 = (undefined *)0x0;
    iVar8 = iVar14 - iVar13;
  }
  ptVar5 = (termline *)(iVar8 + 1);
  if ((int)ptVar11 < 0) {
    if (-(int)ptVar11 <= (int)ptVar5) {
      ptVar5 = (termline *)-(int)ptVar11;
    }
    for (; 0 < (int)ptVar5; ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3)) {
      iVar8 = 0;
      ptVar11 = (termline *)delpos234(term->screen,iVar14);
      resizeline(term,ptVar11,term->cols);
      if (0 < term->cols) {
        do {
          copy_termchar(ptVar11,iVar8,&term->erase_char);
          iVar8 = iVar8 + 1;
        } while (iVar8 < term->cols);
      }
      ptVar10 = term->screen;
      ptVar11->lattr = 0;
      addpos234(ptVar10,ptVar11,iVar13);
      iVar8 = (term->selstart).y;
      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {
        if (iVar14 < iVar16) {
          iVar16 = iVar14 + 1;
          (term->selstart).x = 0;
        }
        (term->selstart).y = iVar16;
      }
      iVar8 = (term->selend).y;
      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {
        if (iVar14 < iVar16) {
          iVar16 = iVar14 + 1;
          (term->selend).x = 0;
        }
        (term->selend).y = iVar16;
      }
    }
  }
  else {
    iVar8 = *(int *)(pcVar20 + 0x7f84c);
    if ((int)ptVar5 <= (int)ptVar11) {
      ptVar11 = ptVar5;
    }
    for (; 0 < (int)ptVar11; ptVar11 = (termline *)((int)&ptVar11[-1].chars + 3)) {
      ptVar5 = (termline *)delpos234(term->screen,iVar13);
      iVar16 = iVar13;
      if (puVar22 == (undefined *)0x0) {
        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);
        if (0 < term->cols) goto LAB_00092364;
        ptVar10 = term->screen;
        ptVar5->lattr = 0;
        addpos234(ptVar10,ptVar5,iVar14);
      }
      else {
        if (0 < term->savelines) {
          iVar18 = count234(term->scrollback);
          if (term->savelines == iVar18) {
            iVar18 = iVar18 + -1;
            pvVar7 = delpos234(term->scrollback,0);
            (**(code **)(pcVar20 + 0x7f064))(pvVar7);
          }
          else {
            term->tempsblines = term->tempsblines + 1;
          }
          ptVar10 = term->scrollback;
          puVar6 = compressline(ptVar5);
          addpos234(ptVar10,puVar6,iVar18);
          iVar18 = term->disptop;
          if ((-term->savelines < iVar18) && (iVar18 < 0)) {
            term->disptop = iVar18 + -1;
          }
        }
        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);
        if (term->cols < 1) {
          ptVar10 = term->screen;
          ptVar5->lattr = 0;
          addpos234(ptVar10,ptVar5,iVar14);
        }
        else {
LAB_00092364:
          iVar18 = 0;
          do {
            copy_termchar(ptVar5,iVar18,&term->erase_char);
            iVar18 = iVar18 + 1;
          } while (iVar18 < term->cols);
          ptVar10 = term->screen;
          ptVar5->lattr = 0;
          addpos234(ptVar10,ptVar5,iVar14);
          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;
        }
        iVar16 = -term->savelines;
      }
LAB_000923b8:
      if (term->selstate != ADDRTYPE_UNSPEC) {
        iVar18 = (term->selstart).y;
        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {
          if (iVar18 + -1 < iVar16) {
            (term->selstart).y = iVar16;
            (term->selstart).x = 0;
          }
          else {
            (term->selstart).y = iVar18 + -1;
          }
        }
        iVar18 = (term->selend).y;
        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {
          if (iVar18 + -1 < iVar16) {
            (term->selend).y = iVar16;
            (term->selend).x = 0;
          }
          else {
            (term->selend).y = iVar18 + -1;
          }
        }
        iVar18 = (term->selanchor).y;
        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {
          if (iVar18 + -1 < iVar16) {
            (term->selanchor).y = iVar16;
            (term->selanchor).x = 0;
          }
          else {
            (term->selanchor).y = iVar18 + -1;
          }
        }
      }
    }
  }
  return;
}



void FUN_00091cb8(int *param_1,uint param_2,int param_3,code *param_4)

{
  bool bVar1;
  undefined2 *puVar2;
  int iVar3;
  ushort *puVar4;
  undefined4 uVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  char cVar11;
  int iVar12;
  int *piVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  undefined4 uVar17;
  code *pcVar18;
  undefined *puVar19;
  undefined *puVar20;
  undefined4 uStack_90;
  int iStack_8c;
  undefined4 uStack_88;
  int iStack_84;
  int iStack_7c;
  uint uStack_78;
  int iStack_74;
  int iStack_70;
  int iStack_6c;
  uint uStack_68;
  code *pcStack_64;
  int local_40;
  int local_3c;
  undefined4 local_30;
  int local_2c;
  
  puVar20 = PTR___stack_chk_guard_00112630;
  local_3c = param_1[1];
  local_2c = *(int *)PTR___stack_chk_guard_00112630;
  pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);
  iVar12 = 0;
  iVar10 = 0;
  iVar9 = 0;
  uVar7 = param_2 - 1;
  local_30 = 0;
  FUN_0008fe74(param_1,0);
  iVar3 = 0;
  if (0 < (int)param_2) {
    do {
      uVar8 = uVar7;
      iVar15 = param_1[1];
      (*param_4)(param_1,param_3,&local_30);
      param_3 = param_3 + 0xc;
      iVar14 = param_1[1];
      if (iVar14 - iVar15 == iVar9) {
        iVar6 = *param_1;
        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);
        if (iVar16 != 0) goto LAB_00091d8c;
        if (iVar9 < 2) {
          if (iVar12 != 0) goto LAB_00091fbc;
          iVar12 = 1;
          goto LAB_00091d90;
        }
        param_2 = iVar3 - 1;
        if (iVar12 == 0) {
          if (param_2 == 0) goto LAB_00091e58;
LAB_00091fcc:
          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);
          param_2 = param_2 - 1;
          param_1[1] = iVar9 + iVar10 + 1;
          if (0x7f < param_2) goto LAB_00092098;
          *(char *)(*param_1 + local_3c) = (char)param_2;
          local_3c = iVar10;
        }
        else {
LAB_00091fbc:
          param_2 = iVar3 - 2;
          if (iVar3 + -1 < 1) goto LAB_000920bc;
          iVar10 = iVar10 - iVar9;
          if (param_2 != 0) goto LAB_00091fcc;
LAB_00091e58:
          bVar1 = local_3c + 1 != iVar10;
          iVar10 = iVar9 + iVar10;
          if (bVar1) goto LAB_00092068;
          param_1[1] = iVar10;
        }
        if (iVar12 == 0) {
          iVar10 = 2;
          if (0 < (int)uVar8) goto LAB_00091e7c;
          local_40 = *param_1;
          cVar11 = -0x80;
        }
        else {
          iVar10 = 3;
          if ((int)uVar8 < 1) {
            local_40 = *param_1;
            cVar11 = -0x7f;
          }
          else {
LAB_00091e7c:
            iVar3 = param_1[1];
            do {
              uVar5 = local_30;
              (*param_4)(param_1,param_3,&local_30);
              iVar12 = param_1[1];
              param_1[1] = iVar3;
              cVar11 = (char)iVar10;
              if (iVar9 != iVar12 - iVar3) {
                local_40 = *param_1;
LAB_00091f08:
                cVar11 = cVar11 + '~';
                local_30 = uVar5;
                goto LAB_00091f18;
              }
              local_40 = *param_1;
              iVar12 = (*(code *)PTR_memcmp_00112430)
                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);
              if (iVar12 != 0) goto LAB_00091f08;
              uVar8 = uVar8 - 1;
              param_3 = param_3 + 0xc;
              iVar10 = iVar10 + 1;
              if (uVar8 == 0) {
                cVar11 = cVar11 + '\x7f';
                goto LAB_00091f18;
              }
            } while (iVar10 != 0x81);
            cVar11 = -1;
          }
        }
LAB_00091f18:
        iVar12 = 0;
        iVar9 = 0;
        iVar10 = 0;
        *(char *)(local_40 + local_3c) = cVar11;
        local_3c = param_1[1];
        (*pcVar18)(param_1,0);
        iVar3 = 0;
      }
      else {
LAB_00091d8c:
        iVar12 = 0;
LAB_00091d90:
        iVar3 = iVar3 + 1;
        iVar9 = iVar14 - iVar15;
        iVar10 = iVar15;
        if (iVar3 == 0x80) {
          iVar12 = 0;
          iVar10 = 0;
          iVar9 = 0;
          *(undefined1 *)(*param_1 + local_3c) = 0x7f;
          local_3c = param_1[1];
          (*pcVar18)(param_1,0);
          iVar3 = 0;
        }
      }
      uVar7 = uVar8 - 1;
      param_2 = uVar8;
    } while (0 < (int)uVar8);
  }
  uVar8 = uVar7;
  if (iVar3 == 0) {
    param_1[1] = local_3c;
  }
  else {
    if (0x80 < iVar3) {
      (*(code *)PTR___assert_fail_00111f50)
                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac
                );
LAB_00092068:
      (*(code *)PTR___assert_fail_00111f50)
                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac
                );
      goto LAB_0009208c;
    }
    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;
  }
  if (local_2c == *(int *)puVar20) {
    return;
  }
LAB_0009208c:
  (*(code *)PTR___stack_chk_fail_001122c8)();
LAB_00092098:
  (*(code *)PTR___assert_fail_00111f50)
            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);
LAB_000920bc:
  pcVar18 = FUN_000920e0;
  puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);
  puVar19 = PTR___assert_fail_00111f50;
  (*(code *)PTR___assert_fail_00111f50)
            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);
  puVar20 = puVar19 + 0x871d0;
  piVar13 = *(int **)(puVar19 + 0x80550);
  uVar7 = *(uint *)(puVar4 + 2);
  uStack_90 = 0;
  iStack_8c = 0;
  uStack_88 = 0;
  iStack_84 = *piVar13;
  iStack_7c = param_3;
  uStack_78 = uVar8;
  iStack_74 = iVar9;
  iStack_70 = iVar10;
  iStack_6c = iVar12;
  uStack_68 = param_2;
  pcStack_64 = pcVar18;
  for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {
    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);
  }
  FUN_0008fe74(&uStack_90,uVar7 & 0xff);
  for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {
    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);
  }
  FUN_0008fe74(&uStack_90,uVar7 & 0xff);
  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),
               *(int *)(puVar19 + 0x7f9f8) + 0x58);
  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),
               *(int *)(puVar19 + 0x7f9f8) + -0xd4);
  iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;
  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));
  iVar3 = 1;
  iVar10 = iStack_8c;
  (**(code **)(puVar19 + 0x7f310))(uStack_90);
  if (iStack_84 == *piVar13) {
    return;
  }
  pcVar18 = *(code **)(puVar19 + 0x801e8);
  iVar12 = iStack_84;
  (*pcVar18)();
  if (iVar10 == 0) {
    iVar14 = iVar3;
    if (*(int *)(iVar12 + 0x1a4) != 0) {
      puVar20 = (undefined *)0x0;
    }
  }
  else {
    puVar20 = (undefined *)0x0;
    iVar14 = iVar3 - iVar10;
  }
  iVar14 = iVar14 + 1;
  if (iVar9 < 0) {
    if (-iVar9 <= iVar14) {
      iVar14 = -iVar9;
    }
    for (; 0 < iVar14; iVar14 = iVar14 + -1) {
      iVar9 = 0;
      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);
      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));
      if (0 < *(int *)(iVar12 + 300)) {
        do {
          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);
          iVar9 = iVar9 + 1;
        } while (iVar9 < *(int *)(iVar12 + 300));
      }
      uVar5 = *(undefined4 *)(iVar12 + 8);
      *puVar2 = 0;
      addpos234(uVar5,puVar2,iVar10);
      iVar9 = *(int *)(iVar12 + 0xe54);
      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {
        if (iVar3 < iVar15) {
          iVar15 = iVar3 + 1;
          *(undefined4 *)(iVar12 + 0xe58) = 0;
        }
        *(int *)(iVar12 + 0xe54) = iVar15;
      }
      iVar9 = *(int *)(iVar12 + 0xe5c);
      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {
        if (iVar3 < iVar15) {
          iVar15 = iVar3 + 1;
          *(undefined4 *)(iVar12 + 0xe60) = 0;
        }
        *(int *)(iVar12 + 0xe5c) = iVar15;
      }
    }
  }
  else {
    iVar15 = *(int *)(pcVar18 + 0x7f84c);
    if (iVar14 <= iVar9) {
      iVar9 = iVar14;
    }
    for (; 0 < iVar9; iVar9 = iVar9 + -1) {
      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);
      iVar14 = iVar10;
      if (puVar20 == (undefined *)0x0) {
        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));
        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;
        uVar5 = *(undefined4 *)(iVar12 + 8);
        *puVar2 = 0;
        addpos234(uVar5,puVar2,iVar3);
      }
      else {
        if (0 < *(int *)(iVar12 + 0x130)) {
          iVar16 = count234(*(undefined4 *)(iVar12 + 4));
          if (*(int *)(iVar12 + 0x130) == iVar16) {
            iVar16 = iVar16 + -1;
            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);
            (**(code **)(pcVar18 + 0x7f064))(uVar5);
          }
          else {
            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;
          }
          uVar17 = *(undefined4 *)(iVar12 + 4);
          uVar5 = FUN_000920e0(puVar2);
          addpos234(uVar17,uVar5,iVar16);
          iVar16 = *(int *)(iVar12 + 0x10);
          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {
            *(int *)(iVar12 + 0x10) = iVar16 + -1;
          }
        }
        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));
        if (*(int *)(iVar12 + 300) < 1) {
          uVar5 = *(undefined4 *)(iVar12 + 8);
          *puVar2 = 0;
          addpos234(uVar5,puVar2,iVar3);
        }
        else {
LAB_00092364:
          iVar16 = 0;
          do {
            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);
            iVar16 = iVar16 + 1;
          } while (iVar16 < *(int *)(iVar12 + 300));
          uVar5 = *(undefined4 *)(iVar12 + 8);
          *puVar2 = 0;
          addpos234(uVar5,puVar2,iVar3);
          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;
        }
        iVar14 = -*(int *)(iVar12 + 0x130);
      }
LAB_000923b8:
      if (*(int *)(iVar12 + 0xe48) != 0) {
        iVar16 = *(int *)(iVar12 + 0xe54);
        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {
          if (iVar16 + -1 < iVar14) {
            *(int *)(iVar12 + 0xe54) = iVar14;
            *(undefined4 *)(iVar12 + 0xe58) = 0;
          }
          else {
            *(int *)(iVar12 + 0xe54) = iVar16 + -1;
          }
        }
        iVar16 = *(int *)(iVar12 + 0xe5c);
        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {
          if (iVar16 + -1 < iVar14) {
            *(int *)(iVar12 + 0xe5c) = iVar14;
            *(undefined4 *)(iVar12 + 0xe60) = 0;
          }
          else {
            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;
          }
        }
        iVar16 = *(int *)(iVar12 + 0xe64);
        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {
          if (iVar16 + -1 < iVar14) {
            *(int *)(iVar12 + 0xe64) = iVar14;
            *(undefined4 *)(iVar12 + 0xe68) = 0;
          }
          else {
            *(int *)(iVar12 + 0xe64) = iVar16 + -1;
          }
        }
      }
    }
  }
  return;
}


lui gp,0x8
addiu gp,gp,0x75f8
addu gp,gp,t9
addiu sp,sp,-0x60
lw v0,-0x6c80(gp)
lw v1,0x4(a0)
sw s0,0x38(sp)
or s0,a2,zero
sw v0,0x2c(sp)
sw s5,0x4c(sp)
or s5,a1,zero
lw a2,-0x77d8(gp)
or a1,zero,zero
lw v0,0x0(v0)
sw gp,0x10(sp)
addiu t9,a2,-0x18c
sw s8,0x58(sp)
sw s7,0x54(sp)
or s8,a0,zero
sw s4,0x48(sp)
addiu s7,sp,0x30
sw s3,0x44(sp)
or s4,zero,zero
sw s2,0x40(sp)
or s3,zero,zero
sw s1,0x3c(sp)
or s2,zero,zero
sw v1,0x24(sp)
addiu s1,s5,-0x1
sw ra,0x5c(sp)
sw s6,0x50(sp)
sw zero,0x30(sp)
sw t9,0x28(sp)
sw a3,0x18(sp)
sw v0,0x34(sp)
bal 0x0008fe74
_nop
or v1,zero,zero
blez s5,0x00091db4
_lw gp,0x10(sp)
lw t9,0x18(sp)
or a1,s0,zero
lw s6,0x4(s8)
or a2,s7,zero
sw v1,0x1c(sp)
jalr t9
_or a0,s8,zero
addiu s0,s0,0xc
lw s5,0x4(s8)
lw gp,0x10(sp)
subu s5,s5,s6
beq s5,s2,0x00091e14
_lw v1,0x1c(sp)
or s4,zero,zero
addiu v1,v1,0x1
li v0,0x80
beq v1,v0,0x00091f54
_or a1,zero,zero
or s2,s5,zero
or s5,s1,zero
or s3,s6,zero
bgtz s5,0x00091d58
_addiu s1,s5,-0x1
beq v1,zero,0x0009202c
_slti v0,v1,0x81
beq v0,zero,0x00092044
_addiu s7,v1,-0x1
lw v0,0x0(s8)
lw v1,0x24(sp)
addu v0,v0,v1
sb s7,0x0(v0)
lw v0,0x2c(sp)
lw v1,0x34(sp)
lw v0,0x0(v0)
bne v1,v0,0x0009208c
_lw ra,0x5c(sp)
lw s8,0x58(sp)
lw s7,0x54(sp)
lw s6,0x50(sp)
lw s5,0x4c(sp)
lw s4,0x48(sp)
lw s3,0x44(sp)
lw s2,0x40(sp)
lw s1,0x3c(sp)
lw s0,0x38(sp)
jr ra
_addiu sp,sp,0x60
lw a3,0x0(s8)
or a2,s2,zero
lw t9,-0x6e80(gp)
addu a1,a3,s6
sw a3,0x20(sp)
jalr t9
_addu a0,a3,s3
lw gp,0x10(sp)
bne v0,zero,0x00091d8c
_lw v1,0x1c(sp)
slti v0,s2,0x2
bne v0,zero,0x00091f94
_lw a3,0x20(sp)
bne s4,zero,0x00091fbc
_addiu s5,v1,-0x1
bne s5,zero,0x00091fcc
_nop
lw v0,0x24(sp)
addiu v0,v0,0x1
bne v0,s3,0x00092068
_addu s3,s2,s3
sw s3,0x4(s8)
beq s4,zero,0x00091fa4
_nop
blez s1,0x00092038
_li s3,0x3
lw v0,0x24(sp)
lw s4,0x4(s8)
b 0x00091ecc
_addiu s5,v0,0x1
lw s6,0x0(s8)
or a2,s2,zero
lw t9,-0x6e80(gp)
addu a1,s6,s4
sw s6,0x20(sp)
jalr t9
_addu a0,s6,s5
bne v0,zero,0x00091f08
_lw v0,0x1c(sp)
addiu s1,s1,-0x1
addiu s0,s0,0xc
beq s1,zero,0x00092018
_addiu s3,s3,0x1
li v0,0x81
beq s3,v0,0x00092024
_nop
lw v0,0x30(sp)
or a2,s7,zero
lw t9,0x18(sp)
or a1,s0,zero
or a0,s8,zero
jalr t9
_sw v0,0x1c(sp)
lw v0,0x4(s8)
lw gp,0x10(sp)
subu v0,v0,s4
beq s2,v0,0x00091e8c
_sw s4,0x4(s8)
lw v0,0x0(s8)
sw v0,0x20(sp)
lw v0,0x1c(sp)
addiu s3,s3,0x7e
lw s6,0x20(sp)
andi s3,s3,0xff
sw v0,0x30(sp)
lw v0,0x24(sp)
or a1,zero,zero
lw t9,0x28(sp)
or a0,s8,zero
or s4,zero,zero
addu a3,s6,v0
or s5,zero,zero
or s6,zero,zero
sb s3,0x0(a3)
lw v0,0x4(s8)
jalr t9
_sw v0,0x24(sp)
or v1,zero,zero
b 0x00091da0
_lw gp,0x10(sp)
lw v1,0x24(sp)
lw v0,0x0(s8)
or a0,s8,zero
lw t9,0x28(sp)
or s4,zero,zero
or s6,zero,zero
addu v0,v0,v1
li v1,0x7f
or s5,zero,zero
sb v1,0x0(v0)
lw v0,0x4(s8)
jalr t9
_sw v0,0x24(sp)
or v1,zero,zero
b 0x00091da0
_lw gp,0x10(sp)
bne s4,zero,0x00091fb8
_nop
b 0x00091d90
_li s4,0x1
bgtz s1,0x00091e7c
_li s3,0x2
lw s6,0x0(s8)
b 0x00091f18
_li s3,0x80
addiu s5,v1,-0x1
blez s5,0x000920bc
_addiu s5,v1,-0x2
beq s5,zero,0x00091e58
_subu s3,s3,s2
addiu a0,s3,0x1
lw t9,-0x72c8(gp)
addu a1,a3,s3
addu a0,a3,a0
jalr t9
_or a2,s2,zero
addu v0,s2,s3
addiu s5,s5,-0x1
lw gp,0x10(sp)
addiu v0,v0,0x1
sltiu a0,s5,0x80
beq a0,zero,0x00092098
_sw v0,0x4(s8)
lw v0,0x0(s8)
lw v1,0x24(sp)
sw s3,0x24(sp)
addu v0,v0,v1
b 0x00091e6c
_sb s5,0x0(v0)
addiu s3,s3,0x7e
b 0x00091f18
_andi s3,s3,0xff
b 0x00091f18
_li s3,0xff
lw v0,0x24(sp)
b 0x00091dd4
_sw v0,0x4(s8)
lw s6,0x0(s8)
b 0x00091f18
_li s3,0x81
lw a3,-0x7fb8(gp)
li a2,0x21b
lw a1,-0x7fb8(gp)
lw a0,-0x7fb8(gp)
lw t9,-0x7360(gp)
addiu a3,a3,0x63ac
addiu a1,a1,0x5830
jalr t9
_addiu a0,a0,0x58e4
lw a3,-0x7fb8(gp)
li a2,0x1cd
lw a1,-0x7fb8(gp)
lw a0,-0x7fb8(gp)
lw t9,-0x7360(gp)
addiu a3,a3,0x63ac
addiu a1,a1,0x5830
jalr t9
_addiu a0,a0,0x58bc
lw t9,-0x6fe8(gp)
jalr t9
_nop
lw a3,-0x7fb8(gp)
li a2,0x1d8
lw a1,-0x7fb8(gp)
lw a0,-0x7fb8(gp)
lw t9,-0x7360(gp)
addiu a3,a3,0x63ac
addiu a1,a1,0x5830
jalr t9
_addiu a0,a0,0x58d4
lw a3,-0x7fb8(gp)
li a2,0x1c7
lw a1,-0x7fb8(gp)
lw a0,-0x7fb8(gp)
lw t9,-0x7360(gp)
addiu a3,a3,0x63ac
addiu a1,a1,0x5830
jalr t9
_addiu a0,a0,0x58b0
(translation_unit "void FUN_00091cb8(int *param_1,uint param_2,int param_3,code *param_4)\n\n{\n  bool bVar1;\n  undefined2 *puVar2;\n  int iVar3;\n  ushort *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  int iVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined4 uStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  int iStack_84;\n  int iStack_7c;\n  uint uStack_78;\n  int iStack_74;\n  int iStack_70;\n  int iStack_6c;\n  uint uStack_68;\n  code *pcStack_64;\n  int local_40;\n  int local_3c;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_00112630;\n  local_3c = param_1[1];\n  local_2c = *(int *)PTR___stack_chk_guard_00112630;\n  pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);\n  iVar12 = 0;\n  iVar10 = 0;\n  iVar9 = 0;\n  uVar7 = param_2 - 1;\n  local_30 = 0;\n  FUN_0008fe74(param_1,0);\n  iVar3 = 0;\n  if (0 < (int)param_2) {\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }\n  uVar8 = uVar7;\n  if (iVar3 == 0) {\n    param_1[1] = local_3c;\n  }\n  else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }\n  if (local_2c == *(int *)puVar20) {\n    return;\n  }\nLAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();\nLAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);\nLAB_000920bc:\n  pcVar18 = FUN_000920e0;\n  puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);\n  puVar19 = PTR___assert_fail_00111f50;\n  (*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);\n  puVar20 = puVar19 + 0x871d0;\n  piVar13 = *(int **)(puVar19 + 0x80550);\n  uVar7 = *(uint *)(puVar4 + 2);\n  uStack_90 = 0;\n  iStack_8c = 0;\n  uStack_88 = 0;\n  iStack_84 = *piVar13;\n  iStack_7c = param_3;\n  uStack_78 = uVar8;\n  iStack_74 = iVar9;\n  iStack_70 = iVar10;\n  iStack_6c = iVar12;\n  uStack_68 = param_2;\n  pcStack_64 = pcVar18;\n  for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4);\n  iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));\n  iVar3 = 1;\n  iVar10 = iStack_8c;\n  (**(code **)(puVar19 + 0x7f310))(uStack_90);\n  if (iStack_84 == *piVar13) {\n    return;\n  }\n  pcVar18 = *(code **)(puVar19 + 0x801e8);\n  iVar12 = iStack_84;\n  (*pcVar18)();\n  if (iVar10 == 0) {\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }\n  iVar14 = iVar14 + 1;\n  if (iVar9 < 0) {\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }\n  else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00091cb8(int *param_1,uint param_2,int param_3,code *param_4)\n\n{\n  bool bVar1;\n  undefined2 *puVar2;\n  int iVar3;\n  ushort *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  int iVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined4 uStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  int iStack_84;\n  int iStack_7c;\n  uint uStack_78;\n  int iStack_74;\n  int iStack_70;\n  int iStack_6c;\n  uint uStack_68;\n  code *pcStack_64;\n  int local_40;\n  int local_3c;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_00112630;\n  local_3c = param_1[1];\n  local_2c = *(int *)PTR___stack_chk_guard_00112630;\n  pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);\n  iVar12 = 0;\n  iVar10 = 0;\n  iVar9 = 0;\n  uVar7 = param_2 - 1;\n  local_30 = 0;\n  FUN_0008fe74(param_1,0);\n  iVar3 = 0;\n  if (0 < (int)param_2) {\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }\n  uVar8 = uVar7;\n  if (iVar3 == 0) {\n    param_1[1] = local_3c;\n  }\n  else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }\n  if (local_2c == *(int *)puVar20) {\n    return;\n  }\nLAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();\nLAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);\nLAB_000920bc:\n  pcVar18 = FUN_000920e0;\n  puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);\n  puVar19 = PTR___assert_fail_00111f50;\n  (*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);\n  puVar20 = puVar19 + 0x871d0;\n  piVar13 = *(int **)(puVar19 + 0x80550);\n  uVar7 = *(uint *)(puVar4 + 2);\n  uStack_90 = 0;\n  iStack_8c = 0;\n  uStack_88 = 0;\n  iStack_84 = *piVar13;\n  iStack_7c = param_3;\n  uStack_78 = uVar8;\n  iStack_74 = iVar9;\n  iStack_70 = iVar10;\n  iStack_6c = iVar12;\n  uStack_68 = param_2;\n  pcStack_64 = pcVar18;\n  for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4);\n  iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));\n  iVar3 = 1;\n  iVar10 = iStack_8c;\n  (**(code **)(puVar19 + 0x7f310))(uStack_90);\n  if (iStack_84 == *piVar13) {\n    return;\n  }\n  pcVar18 = *(code **)(puVar19 + 0x801e8);\n  iVar12 = iStack_84;\n  (*pcVar18)();\n  if (iVar10 == 0) {\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }\n  iVar14 = iVar14 + 1;\n  if (iVar9 < 0) {\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }\n  else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00091cb8(int *param_1,uint param_2,int param_3,code *param_4)" identifier (parameter_list "(int *param_1,uint param_2,int param_3,code *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined2 *puVar2;\n  int iVar3;\n  ushort *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  int iVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined4 uStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  int iStack_84;\n  int iStack_7c;\n  uint uStack_78;\n  int iStack_74;\n  int iStack_70;\n  int iStack_6c;\n  uint uStack_68;\n  code *pcStack_64;\n  int local_40;\n  int local_3c;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_00112630;\n  local_3c = param_1[1];\n  local_2c = *(int *)PTR___stack_chk_guard_00112630;\n  pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);\n  iVar12 = 0;\n  iVar10 = 0;\n  iVar9 = 0;\n  uVar7 = param_2 - 1;\n  local_30 = 0;\n  FUN_0008fe74(param_1,0);\n  iVar3 = 0;\n  if (0 < (int)param_2) {\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }\n  uVar8 = uVar7;\n  if (iVar3 == 0) {\n    param_1[1] = local_3c;\n  }\n  else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }\n  if (local_2c == *(int *)puVar20) {\n    return;\n  }\nLAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();\nLAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);\nLAB_000920bc:\n  pcVar18 = FUN_000920e0;\n  puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);\n  puVar19 = PTR___assert_fail_00111f50;\n  (*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);\n  puVar20 = puVar19 + 0x871d0;\n  piVar13 = *(int **)(puVar19 + 0x80550);\n  uVar7 = *(uint *)(puVar4 + 2);\n  uStack_90 = 0;\n  iStack_8c = 0;\n  uStack_88 = 0;\n  iStack_84 = *piVar13;\n  iStack_7c = param_3;\n  uStack_78 = uVar8;\n  iStack_74 = iVar9;\n  iStack_70 = iVar10;\n  iStack_6c = iVar12;\n  uStack_68 = param_2;\n  pcStack_64 = pcVar18;\n  for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4);\n  iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));\n  iVar3 = 1;\n  iVar10 = iStack_8c;\n  (**(code **)(puVar19 + 0x7f310))(uStack_90);\n  if (iStack_84 == *piVar13) {\n    return;\n  }\n  pcVar18 = *(code **)(puVar19 + 0x801e8);\n  iVar12 = iStack_84;\n  (*pcVar18)();\n  if (iVar10 == 0) {\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }\n  iVar14 = iVar14 + 1;\n  if (iVar9 < 0) {\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }\n  else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined2 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ushort *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "undefined4 uStack_88;" type_identifier identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "int iStack_7c;" primitive_type identifier ;) (declaration "uint uStack_78;" type_identifier identifier ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "int iStack_70;" primitive_type identifier ;) (declaration "int iStack_6c;" primitive_type identifier ;) (declaration "uint uStack_68;" type_identifier identifier ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar20 = PTR___stack_chk_guard_00112630;" (assignment_expression "puVar20 = PTR___stack_chk_guard_00112630" identifier = identifier) ;) (expression_statement "local_3c = param_1[1];" (assignment_expression "local_3c = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00112630;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00112630" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00112630" * (cast_expression "(int *)PTR___stack_chk_guard_00112630" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);" (assignment_expression "pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c)" identifier = (cast_expression "(code *)(PTR_LAB_00111ad8 + -0x18c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00111ad8 + -0x18c)" ( (binary_expression "PTR_LAB_00111ad8 + -0x18c" identifier + number_literal) )))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = param_2 - 1;" (assignment_expression "uVar7 = param_2 - 1" identifier = (binary_expression "param_2 - 1" identifier - number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "FUN_0008fe74(param_1,0);" (call_expression "FUN_0008fe74(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)param_2) {\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }" if (parenthesized_expression "(0 < (int)param_2)" ( (binary_expression "0 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }" { (do_statement "do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);" do (compound_statement "{\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    }" { (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) (expression_statement "iVar15 = param_1[1];" (assignment_expression "iVar15 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*param_4)(param_1,param_3,&local_30);" (call_expression "(*param_4)(param_1,param_3,&local_30)" (parenthesized_expression "(*param_4)" ( (pointer_expression "*param_4" * identifier) )) (argument_list "(param_1,param_3,&local_30)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "param_3 = param_3 + 0xc;" (assignment_expression "param_3 = param_3 + 0xc" identifier = (binary_expression "param_3 + 0xc" identifier + number_literal)) ;) (expression_statement "iVar14 = param_1[1];" (assignment_expression "iVar14 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }" if (parenthesized_expression "(iVar14 - iVar15 == iVar9)" ( (binary_expression "iVar14 - iVar15 == iVar9" (binary_expression "iVar14 - iVar15" identifier - identifier) == identifier) )) (compound_statement "{\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }" { (expression_statement "iVar6 = *param_1;" (assignment_expression "iVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);" (assignment_expression "iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9)" identifier = (call_expression "(*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9)" (parenthesized_expression "(*(code *)PTR_memcmp_00112430)" ( (pointer_expression "*(code *)PTR_memcmp_00112430" * (cast_expression "(code *)PTR_memcmp_00112430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6 + iVar10,iVar6 + iVar15,iVar9)" ( (binary_expression "iVar6 + iVar10" identifier + identifier) , (binary_expression "iVar6 + iVar15" identifier + identifier) , identifier )))) ;) (if_statement "if (iVar16 != 0) goto LAB_00091d8c;" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00091d8c;" goto statement_identifier ;)) (if_statement "if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }" if (parenthesized_expression "(iVar9 < 2)" ( (binary_expression "iVar9 < 2" identifier < number_literal) )) (compound_statement "{\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }" { (if_statement "if (iVar12 != 0) goto LAB_00091fbc;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00091fbc;" goto statement_identifier ;)) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00091d90;" goto statement_identifier ;) })) (expression_statement "param_2 = iVar3 - 1;" (assignment_expression "param_2 = iVar3 - 1" identifier = (binary_expression "iVar3 - 1" identifier - number_literal)) ;) (if_statement "if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }" { (if_statement "if (param_2 == 0) goto LAB_00091e58;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00091e58;" goto statement_identifier ;)) (labeled_statement "LAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);" statement_identifier : (expression_statement "(*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);" (call_expression "(*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9)" (parenthesized_expression "(*(code *)PTR_memmove_00111fe8)" ( (pointer_expression "*(code *)PTR_memmove_00111fe8" * (cast_expression "(code *)PTR_memmove_00111fe8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9)" ( (binary_expression "iVar6 + iVar10 + 1" (binary_expression "iVar6 + iVar10" identifier + identifier) + number_literal) , (binary_expression "iVar6 + iVar10" identifier + identifier) , identifier ))) ;)) (expression_statement "param_2 = param_2 - 1;" (assignment_expression "param_2 = param_2 - 1" identifier = (binary_expression "param_2 - 1" identifier - number_literal)) ;) (expression_statement "param_1[1] = iVar9 + iVar10 + 1;" (assignment_expression "param_1[1] = iVar9 + iVar10 + 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "iVar9 + iVar10 + 1" (binary_expression "iVar9 + iVar10" identifier + identifier) + number_literal)) ;) (if_statement "if (0x7f < param_2) goto LAB_00092098;" if (parenthesized_expression "(0x7f < param_2)" ( (binary_expression "0x7f < param_2" number_literal < identifier) )) (goto_statement "goto LAB_00092098;" goto statement_identifier ;)) (expression_statement "*(char *)(*param_1 + local_3c) = (char)param_2;" (assignment_expression "*(char *)(*param_1 + local_3c) = (char)param_2" (pointer_expression "*(char *)(*param_1 + local_3c)" * (cast_expression "(char *)(*param_1 + local_3c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + local_3c)" ( (binary_expression "*param_1 + local_3c" (pointer_expression "*param_1" * identifier) + identifier) )))) = (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "local_3c = iVar10;" (assignment_expression "local_3c = iVar10" identifier = identifier) ;) }) (else_clause "else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }" else (compound_statement "{\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }" { (labeled_statement "LAB_00091fbc:\n          param_2 = iVar3 - 2;" statement_identifier : (expression_statement "param_2 = iVar3 - 2;" (assignment_expression "param_2 = iVar3 - 2" identifier = (binary_expression "iVar3 - 2" identifier - number_literal)) ;)) (if_statement "if (iVar3 + -1 < 1) goto LAB_000920bc;" if (parenthesized_expression "(iVar3 + -1 < 1)" ( (binary_expression "iVar3 + -1 < 1" (binary_expression "iVar3 + -1" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_000920bc;" goto statement_identifier ;)) (expression_statement "iVar10 = iVar10 - iVar9;" (assignment_expression "iVar10 = iVar10 - iVar9" identifier = (binary_expression "iVar10 - iVar9" identifier - identifier)) ;) (if_statement "if (param_2 != 0) goto LAB_00091fcc;" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00091fcc;" goto statement_identifier ;)) (labeled_statement "LAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;" statement_identifier : (expression_statement "bVar1 = local_3c + 1 != iVar10;" (assignment_expression "bVar1 = local_3c + 1 != iVar10" identifier = (binary_expression "local_3c + 1 != iVar10" (binary_expression "local_3c + 1" identifier + number_literal) != identifier)) ;)) (expression_statement "iVar10 = iVar9 + iVar10;" (assignment_expression "iVar10 = iVar9 + iVar10" identifier = (binary_expression "iVar9 + iVar10" identifier + identifier)) ;) (if_statement "if (bVar1) goto LAB_00092068;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_00092068;" goto statement_identifier ;)) (expression_statement "param_1[1] = iVar10;" (assignment_expression "param_1[1] = iVar10" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }" { (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;) (if_statement "if (0 < (int)uVar8) goto LAB_00091e7c;" if (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00091e7c;" goto statement_identifier ;)) (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "cVar11 = -0x80;" (assignment_expression "cVar11 = -0x80" identifier = number_literal) ;) }) (else_clause "else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }" else (compound_statement "{\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }" { (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (if_statement "if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }" if (parenthesized_expression "((int)uVar8 < 1)" ( (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }" { (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "cVar11 = -0x7f;" (assignment_expression "cVar11 = -0x7f" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }" else (compound_statement "{\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }" { (labeled_statement "LAB_00091e7c:\n            iVar3 = param_1[1];" statement_identifier : (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;)) (do_statement "do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);" do (compound_statement "{\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            }" { (expression_statement "uVar5 = local_30;" (assignment_expression "uVar5 = local_30" identifier = identifier) ;) (expression_statement "(*param_4)(param_1,param_3,&local_30);" (call_expression "(*param_4)(param_1,param_3,&local_30)" (parenthesized_expression "(*param_4)" ( (pointer_expression "*param_4" * identifier) )) (argument_list "(param_1,param_3,&local_30)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "iVar12 = param_1[1];" (assignment_expression "iVar12 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[1] = iVar3;" (assignment_expression "param_1[1] = iVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "cVar11 = (char)iVar10;" (assignment_expression "cVar11 = (char)iVar10" identifier = (cast_expression "(char)iVar10" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }" if (parenthesized_expression "(iVar9 != iVar12 - iVar3)" ( (binary_expression "iVar9 != iVar12 - iVar3" identifier != (binary_expression "iVar12 - iVar3" identifier - identifier)) )) (compound_statement "{\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }" { (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (labeled_statement "LAB_00091f08:\n                cVar11 = cVar11 + '~';" statement_identifier : (expression_statement "cVar11 = cVar11 + '~';" (assignment_expression "cVar11 = cVar11 + '~'" identifier = (binary_expression "cVar11 + '~'" identifier + (char_literal "'~'" ' character '))) ;)) (expression_statement "local_30 = uVar5;" (assignment_expression "local_30 = uVar5" identifier = identifier) ;) (goto_statement "goto LAB_00091f18;" goto statement_identifier ;) })) (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);" (assignment_expression "iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9)" identifier = (call_expression "(*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9)" (parenthesized_expression "(*(code *)PTR_memcmp_00112430)" ( (pointer_expression "*(code *)PTR_memcmp_00112430" * (cast_expression "(code *)PTR_memcmp_00112430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40 + local_3c + 1,local_40 + iVar3,iVar9)" ( (binary_expression "local_40 + local_3c + 1" (binary_expression "local_40 + local_3c" identifier + identifier) + number_literal) , (binary_expression "local_40 + iVar3" identifier + identifier) , identifier )))) ;) (if_statement "if (iVar12 != 0) goto LAB_00091f08;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00091f08;" goto statement_identifier ;)) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "param_3 = param_3 + 0xc;" (assignment_expression "param_3 = param_3 + 0xc" identifier = (binary_expression "param_3 + 0xc" identifier + number_literal)) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (if_statement "if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }" { (expression_statement "cVar11 = cVar11 + '\x7f';" (assignment_expression "cVar11 = cVar11 + '\x7f'" identifier = (binary_expression "cVar11 + '\x7f'" identifier + (char_literal "'\x7f'" ' escape_sequence '))) ;) (goto_statement "goto LAB_00091f18;" goto statement_identifier ;) })) }) while (parenthesized_expression "(iVar10 != 0x81)" ( (binary_expression "iVar10 != 0x81" identifier != number_literal) )) ;) (expression_statement "cVar11 = -1;" (assignment_expression "cVar11 = -1" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00091f18:\n        iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "*(char *)(local_40 + local_3c) = cVar11;" (assignment_expression "*(char *)(local_40 + local_3c) = cVar11" (pointer_expression "*(char *)(local_40 + local_3c)" * (cast_expression "(char *)(local_40 + local_3c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + local_3c)" ( (binary_expression "local_40 + local_3c" identifier + identifier) )))) = identifier) ;) (expression_statement "local_3c = param_1[1];" (assignment_expression "local_3c = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*pcVar18)(param_1,0);" (call_expression "(*pcVar18)(param_1,0)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(param_1,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }" else (compound_statement "{\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }" { (labeled_statement "LAB_00091d8c:\n        iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_00091d90:\n        iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) (expression_statement "iVar9 = iVar14 - iVar15;" (assignment_expression "iVar9 = iVar14 - iVar15" identifier = (binary_expression "iVar14 - iVar15" identifier - identifier)) ;) (expression_statement "iVar10 = iVar15;" (assignment_expression "iVar10 = iVar15" identifier = identifier) ;) (if_statement "if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }" if (parenthesized_expression "(iVar3 == 0x80)" ( (binary_expression "iVar3 == 0x80" identifier == number_literal) )) (compound_statement "{\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(*param_1 + local_3c) = 0x7f;" (assignment_expression "*(undefined1 *)(*param_1 + local_3c) = 0x7f" (pointer_expression "*(undefined1 *)(*param_1 + local_3c)" * (cast_expression "(undefined1 *)(*param_1 + local_3c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + local_3c)" ( (binary_expression "*param_1 + local_3c" (pointer_expression "*param_1" * identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_3c = param_1[1];" (assignment_expression "local_3c = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*pcVar18)(param_1,0);" (call_expression "(*pcVar18)(param_1,0)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(param_1,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) }))) (expression_statement "uVar7 = uVar8 - 1;" (assignment_expression "uVar7 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "param_2 = uVar8;" (assignment_expression "param_2 = uVar8" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n    param_1[1] = local_3c;\n  }\n  else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    param_1[1] = local_3c;\n  }" { (expression_statement "param_1[1] = local_3c;" (assignment_expression "param_1[1] = local_3c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }" else (compound_statement "{\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }" { (if_statement "if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }" if (parenthesized_expression "(0x80 < iVar3)" ( (binary_expression "0x80 < iVar3" number_literal < identifier) )) (compound_statement "{\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }" { (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                )" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                )" ( (binary_expression "PTR_DAT_001112f8 + 0x58e4" identifier + number_literal) , (binary_expression "PTR_DAT_001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_001112f8 + 0x63ac" identifier + number_literal) ))) ;) (labeled_statement "LAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                )" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                )" ( (binary_expression "PTR_DAT_001112f8 + 0x58bc" identifier + number_literal) , (binary_expression "PTR_DAT_001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_001112f8 + 0x63ac" identifier + number_literal) ))) ;)) (goto_statement "goto LAB_0009208c;" goto statement_identifier ;) })) (expression_statement "*(char *)(*param_1 + local_3c) = (char)iVar3 + -1;" (assignment_expression "*(char *)(*param_1 + local_3c) = (char)iVar3 + -1" (pointer_expression "*(char *)(*param_1 + local_3c)" * (cast_expression "(char *)(*param_1 + local_3c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + local_3c)" ( (binary_expression "*param_1 + local_3c" (pointer_expression "*param_1" * identifier) + identifier) )))) = (binary_expression "(char)iVar3 + -1" (cast_expression "(char)iVar3" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) }))) (if_statement "if (local_2c == *(int *)puVar20) {\n    return;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar20)" ( (binary_expression "local_2c == *(int *)puVar20" identifier == (pointer_expression "*(int *)puVar20" * (cast_expression "(int *)puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();" statement_identifier : (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" * (cast_expression "(code *)PTR___stack_chk_fail_001122c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac)" ( (binary_expression "PTR_DAT_001112f8 + 0x58d4" identifier + number_literal) , (binary_expression "PTR_DAT_001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_001112f8 + 0x63ac" identifier + number_literal) ))) ;)) (labeled_statement "LAB_000920bc:\n  pcVar18 = FUN_000920e0;" statement_identifier : (expression_statement "pcVar18 = FUN_000920e0;" (assignment_expression "pcVar18 = FUN_000920e0" identifier = identifier) ;)) (expression_statement "puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);" (assignment_expression "puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0)" identifier = (cast_expression "(ushort *)(PTR_DAT_001112f8 + 0x58b0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_001112f8 + 0x58b0)" ( (binary_expression "PTR_DAT_001112f8 + 0x58b0" identifier + number_literal) )))) ;) (expression_statement "puVar19 = PTR___assert_fail_00111f50;" (assignment_expression "puVar19 = PTR___assert_fail_00111f50" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac)" ( identifier , (binary_expression "PTR_DAT_001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_001112f8 + 0x63ac" identifier + number_literal) ))) ;) (expression_statement "puVar20 = puVar19 + 0x871d0;" (assignment_expression "puVar20 = puVar19 + 0x871d0" identifier = (binary_expression "puVar19 + 0x871d0" identifier + number_literal)) ;) (expression_statement "piVar13 = *(int **)(puVar19 + 0x80550);" (assignment_expression "piVar13 = *(int **)(puVar19 + 0x80550)" identifier = (pointer_expression "*(int **)(puVar19 + 0x80550)" * (cast_expression "(int **)(puVar19 + 0x80550)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x80550)" ( (binary_expression "puVar19 + 0x80550" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(puVar4 + 2);" (assignment_expression "uVar7 = *(uint *)(puVar4 + 2)" identifier = (pointer_expression "*(uint *)(puVar4 + 2)" * (cast_expression "(uint *)(puVar4 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) ))))) ;) (expression_statement "uStack_90 = 0;" (assignment_expression "uStack_90 = 0" identifier = number_literal) ;) (expression_statement "iStack_8c = 0;" (assignment_expression "iStack_8c = 0" identifier = number_literal) ;) (expression_statement "uStack_88 = 0;" (assignment_expression "uStack_88 = 0" identifier = number_literal) ;) (expression_statement "iStack_84 = *piVar13;" (assignment_expression "iStack_84 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "iStack_7c = param_3;" (assignment_expression "iStack_7c = param_3" identifier = identifier) ;) (expression_statement "uStack_78 = uVar8;" (assignment_expression "uStack_78 = uVar8" identifier = identifier) ;) (expression_statement "iStack_74 = iVar9;" (assignment_expression "iStack_74 = iVar9" identifier = identifier) ;) (expression_statement "iStack_70 = iVar10;" (assignment_expression "iStack_70 = iVar10" identifier = identifier) ;) (expression_statement "iStack_6c = iVar12;" (assignment_expression "iStack_6c = iVar12" identifier = identifier) ;) (expression_statement "uStack_68 = param_2;" (assignment_expression "uStack_68 = param_2" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar18;" (assignment_expression "pcStack_64 = pcVar18" identifier = identifier) ;) (for_statement "for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" for ( ; (binary_expression "0x7f < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "uVar7 = (int)uVar7 >> 7" identifier = (binary_expression "(int)uVar7 >> 7" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ) (compound_statement "{\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" { (expression_statement "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" identifier (argument_list "(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" ( (pointer_expression "&uStack_90" & identifier) , (binary_expression "(uVar7 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar7 | 0xffffff80)" ( (binary_expression "uVar7 | 0xffffff80" identifier | number_literal) )) & number_literal) ))) ;) })) (expression_statement "FUN_0008fe74(&uStack_90,uVar7 & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,uVar7 & 0xff)" identifier (argument_list "(&uStack_90,uVar7 & 0xff)" ( (pointer_expression "&uStack_90" & identifier) , (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) ;) (for_statement "for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" for ( (assignment_expression "uVar7 = (uint)*puVar4" identifier = (binary_expression "(uint)*puVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ; (binary_expression "0x7f < uVar7" number_literal < identifier) ; (assignment_expression "uVar7 = (int)uVar7 >> 7" identifier = (binary_expression "(int)uVar7 >> 7" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ) (compound_statement "{\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" { (expression_statement "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" identifier (argument_list "(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" ( (pointer_expression "&uStack_90" & identifier) , (binary_expression "(uVar7 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar7 | 0xffffff80)" ( (binary_expression "uVar7 | 0xffffff80" identifier | number_literal) )) & number_literal) ))) ;) })) (expression_statement "FUN_0008fe74(&uStack_90,uVar7 & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,uVar7 & 0xff)" identifier (argument_list "(&uStack_90,uVar7 & 0xff)" ( (pointer_expression "&uStack_90" & identifier) , (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) ;) (expression_statement "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58);" (call_expression "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58)" identifier (argument_list "(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58)" ( (pointer_expression "&uStack_90" & identifier) , (pointer_expression "*(undefined4 *)(puVar4 + 2)" * (cast_expression "(undefined4 *)(puVar4 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar4 + 10)" * (cast_expression "(undefined4 *)(puVar4 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) , (binary_expression "*(int *)(puVar19 + 0x7f9f8) + 0x58" (pointer_expression "*(int *)(puVar19 + 0x7f9f8)" * (cast_expression "(int *)(puVar19 + 0x7f9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x7f9f8)" ( (binary_expression "puVar19 + 0x7f9f8" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4);" (call_expression "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4)" identifier (argument_list "(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4)" ( (pointer_expression "&uStack_90" & identifier) , (pointer_expression "*(undefined4 *)(puVar4 + 2)" * (cast_expression "(undefined4 *)(puVar4 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar4 + 10)" * (cast_expression "(undefined4 *)(puVar4 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) , (binary_expression "*(int *)(puVar19 + 0x7f9f8) + -0xd4" (pointer_expression "*(int *)(puVar19 + 0x7f9f8)" * (cast_expression "(int *)(puVar19 + 0x7f9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x7f9f8)" ( (binary_expression "puVar19 + 0x7f9f8" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;" (assignment_expression "iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138" identifier = (binary_expression "*(int *)(puVar19 + 0x7f9f8) + 0x1138" (pointer_expression "*(int *)(puVar19 + 0x7f9f8)" * (cast_expression "(int *)(puVar19 + 0x7f9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x7f9f8)" ( (binary_expression "puVar19 + 0x7f9f8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));" (call_expression "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10))" identifier (argument_list "(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10))" ( (pointer_expression "&uStack_90" & identifier) , (pointer_expression "*(undefined4 *)(puVar4 + 2)" * (cast_expression "(undefined4 *)(puVar4 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar4 + 10)" * (cast_expression "(undefined4 *)(puVar4 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "iVar10 = iStack_8c;" (assignment_expression "iVar10 = iStack_8c" identifier = identifier) ;) (expression_statement "(**(code **)(puVar19 + 0x7f310))(uStack_90);" (call_expression "(**(code **)(puVar19 + 0x7f310))(uStack_90)" (parenthesized_expression "(**(code **)(puVar19 + 0x7f310))" ( (pointer_expression "**(code **)(puVar19 + 0x7f310)" * (pointer_expression "*(code **)(puVar19 + 0x7f310)" * (cast_expression "(code **)(puVar19 + 0x7f310)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x7f310)" ( (binary_expression "puVar19 + 0x7f310" identifier + number_literal) ))))) )) (argument_list "(uStack_90)" ( identifier ))) ;) (if_statement "if (iStack_84 == *piVar13) {\n    return;\n  }" if (parenthesized_expression "(iStack_84 == *piVar13)" ( (binary_expression "iStack_84 == *piVar13" identifier == (pointer_expression "*piVar13" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar18 = *(code **)(puVar19 + 0x801e8);" (assignment_expression "pcVar18 = *(code **)(puVar19 + 0x801e8)" identifier = (pointer_expression "*(code **)(puVar19 + 0x801e8)" * (cast_expression "(code **)(puVar19 + 0x801e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x801e8)" ( (binary_expression "puVar19 + 0x801e8" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iStack_84;" (assignment_expression "iVar12 = iStack_84" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar10 == 0) {\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }" { (expression_statement "iVar14 = iVar3;" (assignment_expression "iVar14 = iVar3" identifier = identifier) ;) (if_statement "if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }" if (parenthesized_expression "(*(int *)(iVar12 + 0x1a4) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x1a4) != 0" (pointer_expression "*(int *)(iVar12 + 0x1a4)" * (cast_expression "(int *)(iVar12 + 0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1a4)" ( (binary_expression "iVar12 + 0x1a4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      puVar20 = (undefined *)0x0;\n    }" { (expression_statement "puVar20 = (undefined *)0x0;" (assignment_expression "puVar20 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }" else (compound_statement "{\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }" { (expression_statement "puVar20 = (undefined *)0x0;" (assignment_expression "puVar20 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar14 = iVar3 - iVar10;" (assignment_expression "iVar14 = iVar3 - iVar10" identifier = (binary_expression "iVar3 - iVar10" identifier - identifier)) ;) }))) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (if_statement "if (iVar9 < 0) {\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }\n  else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }" { (if_statement "if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }" if (parenthesized_expression "(-iVar9 <= iVar14)" ( (binary_expression "-iVar9 <= iVar14" (unary_expression "-iVar9" - identifier) <= identifier) )) (compound_statement "{\n      iVar14 = -iVar9;\n    }" { (expression_statement "iVar14 = -iVar9;" (assignment_expression "iVar14 = -iVar9" identifier = (unary_expression "-iVar9" - identifier)) ;) })) (for_statement "for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }" for ( ; (binary_expression "0 < iVar14" number_literal < identifier) ; (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ) (compound_statement "{\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);" (assignment_expression "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3)" identifier = (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "delpos234(*(undefined4 *)(iVar12 + 8),iVar3)" identifier (argument_list "(*(undefined4 *)(iVar12 + 8),iVar3)" ( (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));" (call_expression "FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" identifier (argument_list "(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 300)" * (cast_expression "(undefined4 *)(iVar12 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }" if (parenthesized_expression "(0 < *(int *)(iVar12 + 300))" ( (binary_expression "0 < *(int *)(iVar12 + 300)" number_literal < (pointer_expression "*(int *)(iVar12 + 300)" * (cast_expression "(int *)(iVar12 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) ))))) )) (compound_statement "{\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }" { (do_statement "do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));" do (compound_statement "{\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "FUN_00091070(puVar2,iVar9,iVar12 + 0x54);" (call_expression "FUN_00091070(puVar2,iVar9,iVar12 + 0x54)" identifier (argument_list "(puVar2,iVar9,iVar12 + 0x54)" ( identifier , identifier , (binary_expression "iVar12 + 0x54" identifier + number_literal) ))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 < *(int *)(iVar12 + 300))" ( (binary_expression "iVar9 < *(int *)(iVar12 + 300)" identifier < (pointer_expression "*(int *)(iVar12 + 300)" * (cast_expression "(int *)(iVar12 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) ))))) )) ;) })) (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "addpos234(uVar5,puVar2,iVar10);" (call_expression "addpos234(uVar5,puVar2,iVar10)" identifier (argument_list "(uVar5,puVar2,iVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)(iVar12 + 0xe54);" (assignment_expression "iVar9 = *(int *)(iVar12 + 0xe54)" identifier = (pointer_expression "*(int *)(iVar12 + 0xe54)" * (cast_expression "(int *)(iVar12 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe54)" ( (binary_expression "iVar12 + 0xe54" identifier + number_literal) ))))) ;) (if_statement "if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }" if (parenthesized_expression "((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3))" ( (binary_expression "(iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)" (parenthesized_expression "(iVar10 <= iVar9)" ( (binary_expression "iVar10 <= iVar9" identifier <= identifier) )) && (parenthesized_expression "(iVar15 = iVar9 + 1, iVar9 <= iVar3)" ( (comma_expression "iVar15 = iVar9 + 1, iVar9 <= iVar3" (assignment_expression "iVar15 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) , (binary_expression "iVar9 <= iVar3" identifier <= identifier)) ))) )) (compound_statement "{\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }" { (if_statement "if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }" if (parenthesized_expression "(iVar3 < iVar15)" ( (binary_expression "iVar3 < iVar15" identifier < identifier) )) (compound_statement "{\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }" { (expression_statement "iVar15 = iVar3 + 1;" (assignment_expression "iVar15 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar12 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe58)" * (cast_expression "(undefined4 *)(iVar12 + 0xe58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe58)" ( (binary_expression "iVar12 + 0xe58" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*(int *)(iVar12 + 0xe54) = iVar15;" (assignment_expression "*(int *)(iVar12 + 0xe54) = iVar15" (pointer_expression "*(int *)(iVar12 + 0xe54)" * (cast_expression "(int *)(iVar12 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe54)" ( (binary_expression "iVar12 + 0xe54" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar9 = *(int *)(iVar12 + 0xe5c);" (assignment_expression "iVar9 = *(int *)(iVar12 + 0xe5c)" identifier = (pointer_expression "*(int *)(iVar12 + 0xe5c)" * (cast_expression "(int *)(iVar12 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe5c)" ( (binary_expression "iVar12 + 0xe5c" identifier + number_literal) ))))) ;) (if_statement "if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }" if (parenthesized_expression "((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3))" ( (binary_expression "(iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)" (parenthesized_expression "(iVar10 <= iVar9)" ( (binary_expression "iVar10 <= iVar9" identifier <= identifier) )) && (parenthesized_expression "(iVar15 = iVar9 + 1, iVar9 <= iVar3)" ( (comma_expression "iVar15 = iVar9 + 1, iVar9 <= iVar3" (assignment_expression "iVar15 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) , (binary_expression "iVar9 <= iVar3" identifier <= identifier)) ))) )) (compound_statement "{\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }" { (if_statement "if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }" if (parenthesized_expression "(iVar3 < iVar15)" ( (binary_expression "iVar3 < iVar15" identifier < identifier) )) (compound_statement "{\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }" { (expression_statement "iVar15 = iVar3 + 1;" (assignment_expression "iVar15 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar12 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe60)" * (cast_expression "(undefined4 *)(iVar12 + 0xe60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe60)" ( (binary_expression "iVar12 + 0xe60" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*(int *)(iVar12 + 0xe5c) = iVar15;" (assignment_expression "*(int *)(iVar12 + 0xe5c) = iVar15" (pointer_expression "*(int *)(iVar12 + 0xe5c)" * (cast_expression "(int *)(iVar12 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe5c)" ( (binary_expression "iVar12 + 0xe5c" identifier + number_literal) )))) = identifier) ;) })) })) }) (else_clause "else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar15 = *(int *)(pcVar18 + 0x7f84c);" (assignment_expression "iVar15 = *(int *)(pcVar18 + 0x7f84c)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x7f84c)" * (cast_expression "(int *)(pcVar18 + 0x7f84c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x7f84c)" ( (binary_expression "pcVar18 + 0x7f84c" identifier + number_literal) ))))) ;) (if_statement "if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }" if (parenthesized_expression "(iVar14 <= iVar9)" ( (binary_expression "iVar14 <= iVar9" identifier <= identifier) )) (compound_statement "{\n      iVar9 = iVar14;\n    }" { (expression_statement "iVar9 = iVar14;" (assignment_expression "iVar9 = iVar14" identifier = identifier) ;) })) (for_statement "for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "0 < iVar9" number_literal < identifier) ; (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ) (compound_statement "{\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }" { (expression_statement "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);" (assignment_expression "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10)" identifier = (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "delpos234(*(undefined4 *)(iVar12 + 8),iVar10)" identifier (argument_list "(*(undefined4 *)(iVar12 + 8),iVar10)" ( (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "iVar14 = iVar10;" (assignment_expression "iVar14 = iVar10" identifier = identifier) ;) (if_statement "if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }" if (parenthesized_expression "(puVar20 == (undefined *)0x0)" ( (binary_expression "puVar20 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }" { (expression_statement "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));" (call_expression "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" (parenthesized_expression "(*(code *)(iVar15 + 0xb64))" ( (pointer_expression "*(code *)(iVar15 + 0xb64)" * (cast_expression "(code *)(iVar15 + 0xb64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xb64)" ( (binary_expression "iVar15 + 0xb64" identifier + number_literal) )))) )) (argument_list "(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 300)" * (cast_expression "(undefined4 *)(iVar12 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;" if (parenthesized_expression "(0 < *(int *)(iVar12 + 300))" ( (binary_expression "0 < *(int *)(iVar12 + 300)" number_literal < (pointer_expression "*(int *)(iVar12 + 300)" * (cast_expression "(int *)(iVar12 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00092364;" goto statement_identifier ;)) (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "addpos234(uVar5,puVar2,iVar3);" (call_expression "addpos234(uVar5,puVar2,iVar3)" identifier (argument_list "(uVar5,puVar2,iVar3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }" else (compound_statement "{\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }" { (if_statement "if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }" if (parenthesized_expression "(0 < *(int *)(iVar12 + 0x130))" ( (binary_expression "0 < *(int *)(iVar12 + 0x130)" number_literal < (pointer_expression "*(int *)(iVar12 + 0x130)" * (cast_expression "(int *)(iVar12 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x130)" ( (binary_expression "iVar12 + 0x130" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }" { (expression_statement "iVar16 = count234(*(undefined4 *)(iVar12 + 4));" (assignment_expression "iVar16 = count234(*(undefined4 *)(iVar12 + 4))" identifier = (call_expression "count234(*(undefined4 *)(iVar12 + 4))" identifier (argument_list "(*(undefined4 *)(iVar12 + 4))" ( (pointer_expression "*(undefined4 *)(iVar12 + 4)" * (cast_expression "(undefined4 *)(iVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }" if (parenthesized_expression "(*(int *)(iVar12 + 0x130) == iVar16)" ( (binary_expression "*(int *)(iVar12 + 0x130) == iVar16" (pointer_expression "*(int *)(iVar12 + 0x130)" * (cast_expression "(int *)(iVar12 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x130)" ( (binary_expression "iVar12 + 0x130" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }" { (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);" (assignment_expression "uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0)" identifier = (call_expression "delpos234(*(undefined4 *)(iVar12 + 4),0)" identifier (argument_list "(*(undefined4 *)(iVar12 + 4),0)" ( (pointer_expression "*(undefined4 *)(iVar12 + 4)" * (cast_expression "(undefined4 *)(iVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "(**(code **)(pcVar18 + 0x7f064))(uVar5);" (call_expression "(**(code **)(pcVar18 + 0x7f064))(uVar5)" (parenthesized_expression "(**(code **)(pcVar18 + 0x7f064))" ( (pointer_expression "**(code **)(pcVar18 + 0x7f064)" * (pointer_expression "*(code **)(pcVar18 + 0x7f064)" * (cast_expression "(code **)(pcVar18 + 0x7f064)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x7f064)" ( (binary_expression "pcVar18 + 0x7f064" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) }) (else_clause "else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }" else (compound_statement "{\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }" { (expression_statement "*(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;" (assignment_expression "*(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1" (pointer_expression "*(int *)(iVar12 + 0x14)" * (cast_expression "(int *)(iVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar12 + 0x14) + 1" (pointer_expression "*(int *)(iVar12 + 0x14)" * (cast_expression "(int *)(iVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar17 = *(undefined4 *)(iVar12 + 4);" (assignment_expression "uVar17 = *(undefined4 *)(iVar12 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 4)" * (cast_expression "(undefined4 *)(iVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = FUN_000920e0(puVar2);" (assignment_expression "uVar5 = FUN_000920e0(puVar2)" identifier = (call_expression "FUN_000920e0(puVar2)" identifier (argument_list "(puVar2)" ( identifier )))) ;) (expression_statement "addpos234(uVar17,uVar5,iVar16);" (call_expression "addpos234(uVar17,uVar5,iVar16)" identifier (argument_list "(uVar17,uVar5,iVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar16 = *(int *)(iVar12 + 0x10);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0x10)" identifier = (pointer_expression "*(int *)(iVar12 + 0x10)" * (cast_expression "(int *)(iVar12 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }" if (parenthesized_expression "((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0))" ( (binary_expression "(-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)" (parenthesized_expression "(-*(int *)(iVar12 + 0x130) < iVar16)" ( (binary_expression "-*(int *)(iVar12 + 0x130) < iVar16" (unary_expression "-*(int *)(iVar12 + 0x130)" - (pointer_expression "*(int *)(iVar12 + 0x130)" * (cast_expression "(int *)(iVar12 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x130)" ( (binary_expression "iVar12 + 0x130" identifier + number_literal) ))))) < identifier) )) && (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) ))) )) (compound_statement "{\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }" { (expression_statement "*(int *)(iVar12 + 0x10) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0x10) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0x10)" * (cast_expression "(int *)(iVar12 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) })) })) (expression_statement "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));" (call_expression "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" (parenthesized_expression "(*(code *)(iVar15 + 0xb64))" ( (pointer_expression "*(code *)(iVar15 + 0xb64)" * (cast_expression "(code *)(iVar15 + 0xb64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xb64)" ( (binary_expression "iVar15 + 0xb64" identifier + number_literal) )))) )) (argument_list "(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 300)" * (cast_expression "(undefined4 *)(iVar12 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }" if (parenthesized_expression "(*(int *)(iVar12 + 300) < 1)" ( (binary_expression "*(int *)(iVar12 + 300) < 1" (pointer_expression "*(int *)(iVar12 + 300)" * (cast_expression "(int *)(iVar12 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }" { (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "addpos234(uVar5,puVar2,iVar3);" (call_expression "addpos234(uVar5,puVar2,iVar3)" identifier (argument_list "(uVar5,puVar2,iVar3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }" else (compound_statement "{\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }" { (labeled_statement "LAB_00092364:\n          iVar16 = 0;" statement_identifier : (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;)) (do_statement "do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));" do (compound_statement "{\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          }" { (expression_statement "FUN_00091070(puVar2,iVar16,iVar12 + 0x54);" (call_expression "FUN_00091070(puVar2,iVar16,iVar12 + 0x54)" identifier (argument_list "(puVar2,iVar16,iVar12 + 0x54)" ( identifier , identifier , (binary_expression "iVar12 + 0x54" identifier + number_literal) ))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar16 < *(int *)(iVar12 + 300))" ( (binary_expression "iVar16 < *(int *)(iVar12 + 300)" identifier < (pointer_expression "*(int *)(iVar12 + 300)" * (cast_expression "(int *)(iVar12 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) ))))) )) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "addpos234(uVar5,puVar2,iVar3);" (call_expression "addpos234(uVar5,puVar2,iVar3)" identifier (argument_list "(uVar5,puVar2,iVar3)" ( identifier , identifier , identifier ))) ;) (if_statement "if (puVar20 == (undefined *)0x0) goto LAB_000923b8;" if (parenthesized_expression "(puVar20 == (undefined *)0x0)" ( (binary_expression "puVar20 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000923b8;" goto statement_identifier ;)) }))) (expression_statement "iVar14 = -*(int *)(iVar12 + 0x130);" (assignment_expression "iVar14 = -*(int *)(iVar12 + 0x130)" identifier = (unary_expression "-*(int *)(iVar12 + 0x130)" - (pointer_expression "*(int *)(iVar12 + 0x130)" * (cast_expression "(int *)(iVar12 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x130)" ( (binary_expression "iVar12 + 0x130" identifier + number_literal) )))))) ;) }))) (labeled_statement "LAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }" statement_identifier : (if_statement "if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 0xe48) != 0)" ( (binary_expression "*(int *)(iVar12 + 0xe48) != 0" (pointer_expression "*(int *)(iVar12 + 0xe48)" * (cast_expression "(int *)(iVar12 + 0xe48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe48)" ( (binary_expression "iVar12 + 0xe48" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }" { (expression_statement "iVar16 = *(int *)(iVar12 + 0xe54);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0xe54)" identifier = (pointer_expression "*(int *)(iVar12 + 0xe54)" * (cast_expression "(int *)(iVar12 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe54)" ( (binary_expression "iVar12 + 0xe54" identifier + number_literal) ))))) ;) (if_statement "if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }" if (parenthesized_expression "((iVar14 <= iVar16) && (iVar16 <= iVar3))" ( (binary_expression "(iVar14 <= iVar16) && (iVar16 <= iVar3)" (parenthesized_expression "(iVar14 <= iVar16)" ( (binary_expression "iVar14 <= iVar16" identifier <= identifier) )) && (parenthesized_expression "(iVar16 <= iVar3)" ( (binary_expression "iVar16 <= iVar3" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }" { (if_statement "if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }" if (parenthesized_expression "(iVar16 + -1 < iVar14)" ( (binary_expression "iVar16 + -1 < iVar14" (binary_expression "iVar16 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe54) = iVar14;" (assignment_expression "*(int *)(iVar12 + 0xe54) = iVar14" (pointer_expression "*(int *)(iVar12 + 0xe54)" * (cast_expression "(int *)(iVar12 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe54)" ( (binary_expression "iVar12 + 0xe54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar12 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe58)" * (cast_expression "(undefined4 *)(iVar12 + 0xe58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe58)" ( (binary_expression "iVar12 + 0xe58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe54) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0xe54) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0xe54)" * (cast_expression "(int *)(iVar12 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe54)" ( (binary_expression "iVar12 + 0xe54" identifier + number_literal) )))) = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar16 = *(int *)(iVar12 + 0xe5c);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0xe5c)" identifier = (pointer_expression "*(int *)(iVar12 + 0xe5c)" * (cast_expression "(int *)(iVar12 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe5c)" ( (binary_expression "iVar12 + 0xe5c" identifier + number_literal) ))))) ;) (if_statement "if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }" if (parenthesized_expression "((iVar14 <= iVar16) && (iVar16 <= iVar3))" ( (binary_expression "(iVar14 <= iVar16) && (iVar16 <= iVar3)" (parenthesized_expression "(iVar14 <= iVar16)" ( (binary_expression "iVar14 <= iVar16" identifier <= identifier) )) && (parenthesized_expression "(iVar16 <= iVar3)" ( (binary_expression "iVar16 <= iVar3" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }" { (if_statement "if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }" if (parenthesized_expression "(iVar16 + -1 < iVar14)" ( (binary_expression "iVar16 + -1 < iVar14" (binary_expression "iVar16 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe5c) = iVar14;" (assignment_expression "*(int *)(iVar12 + 0xe5c) = iVar14" (pointer_expression "*(int *)(iVar12 + 0xe5c)" * (cast_expression "(int *)(iVar12 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe5c)" ( (binary_expression "iVar12 + 0xe5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar12 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe60)" * (cast_expression "(undefined4 *)(iVar12 + 0xe60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe60)" ( (binary_expression "iVar12 + 0xe60" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe5c) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0xe5c) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0xe5c)" * (cast_expression "(int *)(iVar12 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe5c)" ( (binary_expression "iVar12 + 0xe5c" identifier + number_literal) )))) = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar16 = *(int *)(iVar12 + 0xe64);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0xe64)" identifier = (pointer_expression "*(int *)(iVar12 + 0xe64)" * (cast_expression "(int *)(iVar12 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe64)" ( (binary_expression "iVar12 + 0xe64" identifier + number_literal) ))))) ;) (if_statement "if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }" if (parenthesized_expression "((iVar14 <= iVar16) && (iVar16 <= iVar3))" ( (binary_expression "(iVar14 <= iVar16) && (iVar16 <= iVar3)" (parenthesized_expression "(iVar14 <= iVar16)" ( (binary_expression "iVar14 <= iVar16" identifier <= identifier) )) && (parenthesized_expression "(iVar16 <= iVar3)" ( (binary_expression "iVar16 <= iVar3" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }" { (if_statement "if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }" if (parenthesized_expression "(iVar16 + -1 < iVar14)" ( (binary_expression "iVar16 + -1 < iVar14" (binary_expression "iVar16 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe64) = iVar14;" (assignment_expression "*(int *)(iVar12 + 0xe64) = iVar14" (pointer_expression "*(int *)(iVar12 + 0xe64)" * (cast_expression "(int *)(iVar12 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe64)" ( (binary_expression "iVar12 + 0xe64" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar12 + 0xe68) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe68) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe68)" * (cast_expression "(undefined4 *)(iVar12 + 0xe68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe68)" ( (binary_expression "iVar12 + 0xe68" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe64) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0xe64) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0xe64)" * (cast_expression "(int *)(iVar12 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe64)" ( (binary_expression "iVar12 + 0xe64" identifier + number_literal) )))) = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) }))) })) }))) })) }))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n/* DWARF original prototype: void makerle(buf * b, termline * ldata,\n   _func_void_buf_ptr_termchar_ptr_ulong_ptr * makeliteral, termline * ldata) */\n\nvoid makerle(buf *b,termline *ldata,_func_void_buf_ptr_termchar_ptr_ulong_ptr *makeliteral,\n            termline *ldata_1)\n\n{\n  bool bVar1;\n  char cVar2;\n  ulong uVar3;\n  int iVar4;\n  termline *ptVar5;\n  uchar *puVar6;\n  void *pvVar7;\n  int iVar8;\n  ushort *puVar9;\n  Terminal *term;\n  tree234 *ptVar10;\n  termline *ptVar11;\n  uint uVar12;\n  int iVar13;\n  int iVar14;\n  uchar uVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  int iVar19;\n  code *pcVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  buf bStack_90;\n  Terminal *pTStack_84;\n  _func_void_buf_ptr_termchar_ptr_ulong_ptr *p_Stack_7c;\n  termline *ptStack_78;\n  int iStack_74;\n  int iStack_70;\n  int iStack_6c;\n  termline *ptStack_68;\n  code *pcStack_64;\n  uchar *local_40;\n  int local_3c;\n  ulong state;\n  int local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_00112630;\n  local_3c = b->len;\n  local_2c = *(int *)PTR___stack_chk_guard_00112630;\n  pcVar20 = (code *)(PTR_LAB_00111ad8 + -0x18c);\n  iVar16 = 0;\n  iVar14 = 0;\n  iVar13 = 0;\n  ptVar11 = (termline *)((int)&ldata[-1].chars + 3);\n  state = 0;\n  add(b,'\0');\n  iVar8 = 0;\n  if (0 < (int)ldata) {\n    do {\n      ptVar5 = ptVar11;\n      iVar19 = b->len;\n      (*(code *)ldata_1)(b,makeliteral,&state);\n      makeliteral = makeliteral + 0xc;\n      iVar18 = b->len - iVar19;\n      if (iVar18 == iVar13) {\n        puVar6 = b->data;\n        iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13);\n        if (iVar4 != 0) goto LAB_00091d8c;\n        if (iVar13 < 2) {\n          if (iVar16 != 0) goto LAB_00091fbc;\n          iVar16 = 1;\n          goto LAB_00091d90;\n        }\n        ldata = (termline *)(iVar8 + -1);\n        if (iVar16 == 0) {\n          if (ldata == (termline *)0x0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);\n          ldata = (termline *)((int)&ldata[-1].chars + 3);\n          b->len = iVar13 + iVar14 + 1;\n          if ((termline *)0x7f < ldata) goto LAB_00092098;\n          b->data[local_3c] = (uchar)ldata;\n          local_3c = iVar14;\n        }\n        else {\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }\n        if (iVar16 == 0) {\n          iVar14 = 2;\n          if (0 < (int)ptVar5) goto LAB_00091e7c;\n          local_40 = b->data;\n          uVar15 = 0x80;\n        }\n        else {\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }\nLAB_00091f18:\n        iVar16 = 0;\n        iVar13 = 0;\n        iVar14 = 0;\n        local_40[local_3c] = uVar15;\n        local_3c = b->len;\n        (*pcVar20)(b,0);\n        iVar8 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar16 = 0;\nLAB_00091d90:\n        iVar8 = iVar8 + 1;\n        iVar13 = iVar18;\n        iVar14 = iVar19;\n        if (iVar8 == 0x80) {\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }\n      }\n      ptVar11 = (termline *)((int)&ptVar5[-1].chars + 3);\n      ldata = ptVar5;\n    } while (0 < (int)ptVar5);\n  }\n  ptVar5 = ptVar11;\n  if (iVar8 == 0) {\n    b->len = local_3c;\n  }\n  else {\n    if (0x80 < iVar8) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,\n                 PTR_E1_202__001112f8 + 0x63ac);\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac);\n      goto LAB_0009208c;\n    }\n    b->data[local_3c] = (char)iVar8 + 0xff;\n  }\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }\nLAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();\nLAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_E1_202__001112f8 + 0x58d4,PTR_E1_202__001112f8 + 0x5830,0x1d8,\n             PTR_E1_202__001112f8 + 0x63ac);\nLAB_000920bc:\n  pcVar20 = compressline;\n  puVar9 = (ushort *)(PTR_E1_202__001112f8 + 0x58b0);\n  puVar21 = PTR___assert_fail_00111f50;\n  (*(code *)PTR___assert_fail_00111f50)\n            (puVar9,PTR_E1_202__001112f8 + 0x5830,0x1c7,PTR_E1_202__001112f8 + 0x63ac);\n  puVar22 = puVar21 + 0x871d0;\n  piVar17 = *(int **)(puVar21 + 0x80550);\n  iVar8 = *(int *)(puVar9 + 2);\n  bStack_90.data = (uchar *)0x0;\n  bStack_90.len = 0;\n  bStack_90.size = 0;\n  pTStack_84 = (Terminal *)*piVar17;\n  p_Stack_7c = makeliteral;\n  ptStack_78 = ptVar5;\n  iStack_74 = iVar13;\n  iStack_70 = iVar14;\n  iStack_6c = iVar16;\n  ptStack_68 = ldata;\n  pcStack_64 = pcVar20;\n  for (; 0x7f < iVar8; iVar8 = iVar8 >> 7) {\n    add(&bStack_90,(byte)iVar8 | 0x80);\n  }\n  add(&bStack_90,(byte)iVar8);\n  for (uVar12 = (uint)*puVar9; 0x7f < uVar12; uVar12 = (int)uVar12 >> 7) {\n    add(&bStack_90,(byte)uVar12 | 0x80);\n  }\n  add(&bStack_90,(byte)uVar12);\n  makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x58));\n  makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + -0xd4));\n  ptVar11 = (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x1138);\n  makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),ptVar11);\n  iVar14 = 1;\n  iVar13 = bStack_90.len;\n  (**(code **)(puVar21 + 0x7f310))(bStack_90.data);\n  if (pTStack_84 == (Terminal *)*piVar17) {\n    return;\n  }\n  pcVar20 = *(code **)(puVar21 + 0x801e8);\n  term = pTStack_84;\n  (*pcVar20)();\n  if (iVar13 == 0) {\n    iVar8 = iVar14;\n    if (term->alt_which != 0) {\n      puVar22 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar22 = (undefined *)0x0;\n    iVar8 = iVar14 - iVar13;\n  }\n  ptVar5 = (termline *)(iVar8 + 1);\n  if ((int)ptVar11 < 0) {\n    if (-(int)ptVar11 <= (int)ptVar5) {\n      ptVar5 = (termline *)-(int)ptVar11;\n    }\n    for (; 0 < (int)ptVar5; ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3)) {\n      iVar8 = 0;\n      ptVar11 = (termline *)delpos234(term->screen,iVar14);\n      resizeline(term,ptVar11,term->cols);\n      if (0 < term->cols) {\n        do {\n          copy_termchar(ptVar11,iVar8,&term->erase_char);\n          iVar8 = iVar8 + 1;\n        } while (iVar8 < term->cols);\n      }\n      ptVar10 = term->screen;\n      ptVar11->lattr = 0;\n      addpos234(ptVar10,ptVar11,iVar13);\n      iVar8 = (term->selstart).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selstart).x = 0;\n        }\n        (term->selstart).y = iVar16;\n      }\n      iVar8 = (term->selend).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selend).x = 0;\n        }\n        (term->selend).y = iVar16;\n      }\n    }\n  }\n  else {\n    iVar8 = *(int *)(pcVar20 + 0x7f84c);\n    if ((int)ptVar5 <= (int)ptVar11) {\n      ptVar11 = ptVar5;\n    }\n    for (; 0 < (int)ptVar11; ptVar11 = (termline *)((int)&ptVar11[-1].chars + 3)) {\n      ptVar5 = (termline *)delpos234(term->screen,iVar13);\n      iVar16 = iVar13;\n      if (puVar22 == (undefined *)0x0) {\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (0 < term->cols) goto LAB_00092364;\n        ptVar10 = term->screen;\n        ptVar5->lattr = 0;\n        addpos234(ptVar10,ptVar5,iVar14);\n      }\n      else {\n        if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar16 = -term->savelines;\n      }\nLAB_000923b8:\n      if (term->selstate != ADDRTYPE_UNSPEC) {\n        iVar18 = (term->selstart).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selend).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selanchor).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}\n\n" comment comment (function_definition "void makerle(buf *b,termline *ldata,_func_void_buf_ptr_termchar_ptr_ulong_ptr *makeliteral,\n            termline *ldata_1)\n\n{\n  bool bVar1;\n  char cVar2;\n  ulong uVar3;\n  int iVar4;\n  termline *ptVar5;\n  uchar *puVar6;\n  void *pvVar7;\n  int iVar8;\n  ushort *puVar9;\n  Terminal *term;\n  tree234 *ptVar10;\n  termline *ptVar11;\n  uint uVar12;\n  int iVar13;\n  int iVar14;\n  uchar uVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  int iVar19;\n  code *pcVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  buf bStack_90;\n  Terminal *pTStack_84;\n  _func_void_buf_ptr_termchar_ptr_ulong_ptr *p_Stack_7c;\n  termline *ptStack_78;\n  int iStack_74;\n  int iStack_70;\n  int iStack_6c;\n  termline *ptStack_68;\n  code *pcStack_64;\n  uchar *local_40;\n  int local_3c;\n  ulong state;\n  int local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_00112630;\n  local_3c = b->len;\n  local_2c = *(int *)PTR___stack_chk_guard_00112630;\n  pcVar20 = (code *)(PTR_LAB_00111ad8 + -0x18c);\n  iVar16 = 0;\n  iVar14 = 0;\n  iVar13 = 0;\n  ptVar11 = (termline *)((int)&ldata[-1].chars + 3);\n  state = 0;\n  add(b,'\0');\n  iVar8 = 0;\n  if (0 < (int)ldata) {\n    do {\n      ptVar5 = ptVar11;\n      iVar19 = b->len;\n      (*(code *)ldata_1)(b,makeliteral,&state);\n      makeliteral = makeliteral + 0xc;\n      iVar18 = b->len - iVar19;\n      if (iVar18 == iVar13) {\n        puVar6 = b->data;\n        iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13);\n        if (iVar4 != 0) goto LAB_00091d8c;\n        if (iVar13 < 2) {\n          if (iVar16 != 0) goto LAB_00091fbc;\n          iVar16 = 1;\n          goto LAB_00091d90;\n        }\n        ldata = (termline *)(iVar8 + -1);\n        if (iVar16 == 0) {\n          if (ldata == (termline *)0x0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);\n          ldata = (termline *)((int)&ldata[-1].chars + 3);\n          b->len = iVar13 + iVar14 + 1;\n          if ((termline *)0x7f < ldata) goto LAB_00092098;\n          b->data[local_3c] = (uchar)ldata;\n          local_3c = iVar14;\n        }\n        else {\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }\n        if (iVar16 == 0) {\n          iVar14 = 2;\n          if (0 < (int)ptVar5) goto LAB_00091e7c;\n          local_40 = b->data;\n          uVar15 = 0x80;\n        }\n        else {\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }\nLAB_00091f18:\n        iVar16 = 0;\n        iVar13 = 0;\n        iVar14 = 0;\n        local_40[local_3c] = uVar15;\n        local_3c = b->len;\n        (*pcVar20)(b,0);\n        iVar8 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar16 = 0;\nLAB_00091d90:\n        iVar8 = iVar8 + 1;\n        iVar13 = iVar18;\n        iVar14 = iVar19;\n        if (iVar8 == 0x80) {\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }\n      }\n      ptVar11 = (termline *)((int)&ptVar5[-1].chars + 3);\n      ldata = ptVar5;\n    } while (0 < (int)ptVar5);\n  }\n  ptVar5 = ptVar11;\n  if (iVar8 == 0) {\n    b->len = local_3c;\n  }\n  else {\n    if (0x80 < iVar8) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,\n                 PTR_E1_202__001112f8 + 0x63ac);\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac);\n      goto LAB_0009208c;\n    }\n    b->data[local_3c] = (char)iVar8 + 0xff;\n  }\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }\nLAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();\nLAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_E1_202__001112f8 + 0x58d4,PTR_E1_202__001112f8 + 0x5830,0x1d8,\n             PTR_E1_202__001112f8 + 0x63ac);\nLAB_000920bc:\n  pcVar20 = compressline;\n  puVar9 = (ushort *)(PTR_E1_202__001112f8 + 0x58b0);\n  puVar21 = PTR___assert_fail_00111f50;\n  (*(code *)PTR___assert_fail_00111f50)\n            (puVar9,PTR_E1_202__001112f8 + 0x5830,0x1c7,PTR_E1_202__001112f8 + 0x63ac);\n  puVar22 = puVar21 + 0x871d0;\n  piVar17 = *(int **)(puVar21 + 0x80550);\n  iVar8 = *(int *)(puVar9 + 2);\n  bStack_90.data = (uchar *)0x0;\n  bStack_90.len = 0;\n  bStack_90.size = 0;\n  pTStack_84 = (Terminal *)*piVar17;\n  p_Stack_7c = makeliteral;\n  ptStack_78 = ptVar5;\n  iStack_74 = iVar13;\n  iStack_70 = iVar14;\n  iStack_6c = iVar16;\n  ptStack_68 = ldata;\n  pcStack_64 = pcVar20;\n  for (; 0x7f < iVar8; iVar8 = iVar8 >> 7) {\n    add(&bStack_90,(byte)iVar8 | 0x80);\n  }\n  add(&bStack_90,(byte)iVar8);\n  for (uVar12 = (uint)*puVar9; 0x7f < uVar12; uVar12 = (int)uVar12 >> 7) {\n    add(&bStack_90,(byte)uVar12 | 0x80);\n  }\n  add(&bStack_90,(byte)uVar12);\n  makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x58));\n  makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + -0xd4));\n  ptVar11 = (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x1138);\n  makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),ptVar11);\n  iVar14 = 1;\n  iVar13 = bStack_90.len;\n  (**(code **)(puVar21 + 0x7f310))(bStack_90.data);\n  if (pTStack_84 == (Terminal *)*piVar17) {\n    return;\n  }\n  pcVar20 = *(code **)(puVar21 + 0x801e8);\n  term = pTStack_84;\n  (*pcVar20)();\n  if (iVar13 == 0) {\n    iVar8 = iVar14;\n    if (term->alt_which != 0) {\n      puVar22 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar22 = (undefined *)0x0;\n    iVar8 = iVar14 - iVar13;\n  }\n  ptVar5 = (termline *)(iVar8 + 1);\n  if ((int)ptVar11 < 0) {\n    if (-(int)ptVar11 <= (int)ptVar5) {\n      ptVar5 = (termline *)-(int)ptVar11;\n    }\n    for (; 0 < (int)ptVar5; ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3)) {\n      iVar8 = 0;\n      ptVar11 = (termline *)delpos234(term->screen,iVar14);\n      resizeline(term,ptVar11,term->cols);\n      if (0 < term->cols) {\n        do {\n          copy_termchar(ptVar11,iVar8,&term->erase_char);\n          iVar8 = iVar8 + 1;\n        } while (iVar8 < term->cols);\n      }\n      ptVar10 = term->screen;\n      ptVar11->lattr = 0;\n      addpos234(ptVar10,ptVar11,iVar13);\n      iVar8 = (term->selstart).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selstart).x = 0;\n        }\n        (term->selstart).y = iVar16;\n      }\n      iVar8 = (term->selend).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selend).x = 0;\n        }\n        (term->selend).y = iVar16;\n      }\n    }\n  }\n  else {\n    iVar8 = *(int *)(pcVar20 + 0x7f84c);\n    if ((int)ptVar5 <= (int)ptVar11) {\n      ptVar11 = ptVar5;\n    }\n    for (; 0 < (int)ptVar11; ptVar11 = (termline *)((int)&ptVar11[-1].chars + 3)) {\n      ptVar5 = (termline *)delpos234(term->screen,iVar13);\n      iVar16 = iVar13;\n      if (puVar22 == (undefined *)0x0) {\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (0 < term->cols) goto LAB_00092364;\n        ptVar10 = term->screen;\n        ptVar5->lattr = 0;\n        addpos234(ptVar10,ptVar5,iVar14);\n      }\n      else {\n        if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar16 = -term->savelines;\n      }\nLAB_000923b8:\n      if (term->selstate != ADDRTYPE_UNSPEC) {\n        iVar18 = (term->selstart).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selend).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selanchor).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "makerle(buf *b,termline *ldata,_func_void_buf_ptr_termchar_ptr_ulong_ptr *makeliteral,\n            termline *ldata_1)" identifier (parameter_list "(buf *b,termline *ldata,_func_void_buf_ptr_termchar_ptr_ulong_ptr *makeliteral,\n            termline *ldata_1)" ( (parameter_declaration "buf *b" type_identifier (pointer_declarator "*b" * identifier)) , (parameter_declaration "termline *ldata" type_identifier (pointer_declarator "*ldata" * identifier)) , (parameter_declaration "_func_void_buf_ptr_termchar_ptr_ulong_ptr *makeliteral" type_identifier (pointer_declarator "*makeliteral" * identifier)) , (parameter_declaration "termline *ldata_1" type_identifier (pointer_declarator "*ldata_1" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  char cVar2;\n  ulong uVar3;\n  int iVar4;\n  termline *ptVar5;\n  uchar *puVar6;\n  void *pvVar7;\n  int iVar8;\n  ushort *puVar9;\n  Terminal *term;\n  tree234 *ptVar10;\n  termline *ptVar11;\n  uint uVar12;\n  int iVar13;\n  int iVar14;\n  uchar uVar15;\n  int iVar16;\n  int *piVar17;\n  int iVar18;\n  int iVar19;\n  code *pcVar20;\n  undefined *puVar21;\n  undefined *puVar22;\n  buf bStack_90;\n  Terminal *pTStack_84;\n  _func_void_buf_ptr_termchar_ptr_ulong_ptr *p_Stack_7c;\n  termline *ptStack_78;\n  int iStack_74;\n  int iStack_70;\n  int iStack_6c;\n  termline *ptStack_68;\n  code *pcStack_64;\n  uchar *local_40;\n  int local_3c;\n  ulong state;\n  int local_2c;\n  \n  puVar22 = PTR___stack_chk_guard_00112630;\n  local_3c = b->len;\n  local_2c = *(int *)PTR___stack_chk_guard_00112630;\n  pcVar20 = (code *)(PTR_LAB_00111ad8 + -0x18c);\n  iVar16 = 0;\n  iVar14 = 0;\n  iVar13 = 0;\n  ptVar11 = (termline *)((int)&ldata[-1].chars + 3);\n  state = 0;\n  add(b,'\0');\n  iVar8 = 0;\n  if (0 < (int)ldata) {\n    do {\n      ptVar5 = ptVar11;\n      iVar19 = b->len;\n      (*(code *)ldata_1)(b,makeliteral,&state);\n      makeliteral = makeliteral + 0xc;\n      iVar18 = b->len - iVar19;\n      if (iVar18 == iVar13) {\n        puVar6 = b->data;\n        iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13);\n        if (iVar4 != 0) goto LAB_00091d8c;\n        if (iVar13 < 2) {\n          if (iVar16 != 0) goto LAB_00091fbc;\n          iVar16 = 1;\n          goto LAB_00091d90;\n        }\n        ldata = (termline *)(iVar8 + -1);\n        if (iVar16 == 0) {\n          if (ldata == (termline *)0x0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);\n          ldata = (termline *)((int)&ldata[-1].chars + 3);\n          b->len = iVar13 + iVar14 + 1;\n          if ((termline *)0x7f < ldata) goto LAB_00092098;\n          b->data[local_3c] = (uchar)ldata;\n          local_3c = iVar14;\n        }\n        else {\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }\n        if (iVar16 == 0) {\n          iVar14 = 2;\n          if (0 < (int)ptVar5) goto LAB_00091e7c;\n          local_40 = b->data;\n          uVar15 = 0x80;\n        }\n        else {\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }\nLAB_00091f18:\n        iVar16 = 0;\n        iVar13 = 0;\n        iVar14 = 0;\n        local_40[local_3c] = uVar15;\n        local_3c = b->len;\n        (*pcVar20)(b,0);\n        iVar8 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar16 = 0;\nLAB_00091d90:\n        iVar8 = iVar8 + 1;\n        iVar13 = iVar18;\n        iVar14 = iVar19;\n        if (iVar8 == 0x80) {\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }\n      }\n      ptVar11 = (termline *)((int)&ptVar5[-1].chars + 3);\n      ldata = ptVar5;\n    } while (0 < (int)ptVar5);\n  }\n  ptVar5 = ptVar11;\n  if (iVar8 == 0) {\n    b->len = local_3c;\n  }\n  else {\n    if (0x80 < iVar8) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,\n                 PTR_E1_202__001112f8 + 0x63ac);\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac);\n      goto LAB_0009208c;\n    }\n    b->data[local_3c] = (char)iVar8 + 0xff;\n  }\n  if (local_2c == *(int *)puVar22) {\n    return;\n  }\nLAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();\nLAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_E1_202__001112f8 + 0x58d4,PTR_E1_202__001112f8 + 0x5830,0x1d8,\n             PTR_E1_202__001112f8 + 0x63ac);\nLAB_000920bc:\n  pcVar20 = compressline;\n  puVar9 = (ushort *)(PTR_E1_202__001112f8 + 0x58b0);\n  puVar21 = PTR___assert_fail_00111f50;\n  (*(code *)PTR___assert_fail_00111f50)\n            (puVar9,PTR_E1_202__001112f8 + 0x5830,0x1c7,PTR_E1_202__001112f8 + 0x63ac);\n  puVar22 = puVar21 + 0x871d0;\n  piVar17 = *(int **)(puVar21 + 0x80550);\n  iVar8 = *(int *)(puVar9 + 2);\n  bStack_90.data = (uchar *)0x0;\n  bStack_90.len = 0;\n  bStack_90.size = 0;\n  pTStack_84 = (Terminal *)*piVar17;\n  p_Stack_7c = makeliteral;\n  ptStack_78 = ptVar5;\n  iStack_74 = iVar13;\n  iStack_70 = iVar14;\n  iStack_6c = iVar16;\n  ptStack_68 = ldata;\n  pcStack_64 = pcVar20;\n  for (; 0x7f < iVar8; iVar8 = iVar8 >> 7) {\n    add(&bStack_90,(byte)iVar8 | 0x80);\n  }\n  add(&bStack_90,(byte)iVar8);\n  for (uVar12 = (uint)*puVar9; 0x7f < uVar12; uVar12 = (int)uVar12 >> 7) {\n    add(&bStack_90,(byte)uVar12 | 0x80);\n  }\n  add(&bStack_90,(byte)uVar12);\n  makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x58));\n  makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + -0xd4));\n  ptVar11 = (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x1138);\n  makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),ptVar11);\n  iVar14 = 1;\n  iVar13 = bStack_90.len;\n  (**(code **)(puVar21 + 0x7f310))(bStack_90.data);\n  if (pTStack_84 == (Terminal *)*piVar17) {\n    return;\n  }\n  pcVar20 = *(code **)(puVar21 + 0x801e8);\n  term = pTStack_84;\n  (*pcVar20)();\n  if (iVar13 == 0) {\n    iVar8 = iVar14;\n    if (term->alt_which != 0) {\n      puVar22 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar22 = (undefined *)0x0;\n    iVar8 = iVar14 - iVar13;\n  }\n  ptVar5 = (termline *)(iVar8 + 1);\n  if ((int)ptVar11 < 0) {\n    if (-(int)ptVar11 <= (int)ptVar5) {\n      ptVar5 = (termline *)-(int)ptVar11;\n    }\n    for (; 0 < (int)ptVar5; ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3)) {\n      iVar8 = 0;\n      ptVar11 = (termline *)delpos234(term->screen,iVar14);\n      resizeline(term,ptVar11,term->cols);\n      if (0 < term->cols) {\n        do {\n          copy_termchar(ptVar11,iVar8,&term->erase_char);\n          iVar8 = iVar8 + 1;\n        } while (iVar8 < term->cols);\n      }\n      ptVar10 = term->screen;\n      ptVar11->lattr = 0;\n      addpos234(ptVar10,ptVar11,iVar13);\n      iVar8 = (term->selstart).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selstart).x = 0;\n        }\n        (term->selstart).y = iVar16;\n      }\n      iVar8 = (term->selend).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selend).x = 0;\n        }\n        (term->selend).y = iVar16;\n      }\n    }\n  }\n  else {\n    iVar8 = *(int *)(pcVar20 + 0x7f84c);\n    if ((int)ptVar5 <= (int)ptVar11) {\n      ptVar11 = ptVar5;\n    }\n    for (; 0 < (int)ptVar11; ptVar11 = (termline *)((int)&ptVar11[-1].chars + 3)) {\n      ptVar5 = (termline *)delpos234(term->screen,iVar13);\n      iVar16 = iVar13;\n      if (puVar22 == (undefined *)0x0) {\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (0 < term->cols) goto LAB_00092364;\n        ptVar10 = term->screen;\n        ptVar5->lattr = 0;\n        addpos234(ptVar10,ptVar5,iVar14);\n      }\n      else {\n        if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar16 = -term->savelines;\n      }\nLAB_000923b8:\n      if (term->selstate != ADDRTYPE_UNSPEC) {\n        iVar18 = (term->selstart).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selend).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selanchor).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "char cVar2;" primitive_type identifier ;) (declaration "ulong uVar3;" type_identifier identifier ;) (declaration "int iVar4;" primitive_type identifier ;) (declaration "termline *ptVar5;" type_identifier (pointer_declarator "*ptVar5" * identifier) ;) (declaration "uchar *puVar6;" type_identifier (pointer_declarator "*puVar6" * identifier) ;) (declaration "void *pvVar7;" primitive_type (pointer_declarator "*pvVar7" * identifier) ;) (declaration "int iVar8;" primitive_type identifier ;) (declaration "ushort *puVar9;" type_identifier (pointer_declarator "*puVar9" * identifier) ;) (declaration "Terminal *term;" type_identifier (pointer_declarator "*term" * identifier) ;) (declaration "tree234 *ptVar10;" type_identifier (pointer_declarator "*ptVar10" * identifier) ;) (declaration "termline *ptVar11;" type_identifier (pointer_declarator "*ptVar11" * identifier) ;) (declaration "uint uVar12;" type_identifier identifier ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "uchar uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "int *piVar17;" primitive_type (pointer_declarator "*piVar17" * identifier) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "int iVar19;" primitive_type identifier ;) (declaration "code *pcVar20;" type_identifier (pointer_declarator "*pcVar20" * identifier) ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "undefined *puVar22;" type_identifier (pointer_declarator "*puVar22" * identifier) ;) (declaration "buf bStack_90;" type_identifier identifier ;) (declaration "Terminal *pTStack_84;" type_identifier (pointer_declarator "*pTStack_84" * identifier) ;) (declaration "_func_void_buf_ptr_termchar_ptr_ulong_ptr *p_Stack_7c;" type_identifier (pointer_declarator "*p_Stack_7c" * identifier) ;) (declaration "termline *ptStack_78;" type_identifier (pointer_declarator "*ptStack_78" * identifier) ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "int iStack_70;" primitive_type identifier ;) (declaration "int iStack_6c;" primitive_type identifier ;) (declaration "termline *ptStack_68;" type_identifier (pointer_declarator "*ptStack_68" * identifier) ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "uchar *local_40;" type_identifier (pointer_declarator "*local_40" * identifier) ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "ulong state;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar22 = PTR___stack_chk_guard_00112630;" (assignment_expression "puVar22 = PTR___stack_chk_guard_00112630" identifier = identifier) ;) (expression_statement "local_3c = b->len;" (assignment_expression "local_3c = b->len" identifier = (field_expression "b->len" identifier -> field_identifier)) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00112630;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00112630" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00112630" * (cast_expression "(int *)PTR___stack_chk_guard_00112630" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar20 = (code *)(PTR_LAB_00111ad8 + -0x18c);" (assignment_expression "pcVar20 = (code *)(PTR_LAB_00111ad8 + -0x18c)" identifier = (cast_expression "(code *)(PTR_LAB_00111ad8 + -0x18c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00111ad8 + -0x18c)" ( (binary_expression "PTR_LAB_00111ad8 + -0x18c" identifier + number_literal) )))) ;) (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "ptVar11 = (termline *)((int)&ldata[-1].chars + 3);" (assignment_expression "ptVar11 = (termline *)((int)&ldata[-1].chars + 3)" identifier = (cast_expression "(termline *)((int)&ldata[-1].chars + 3)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ldata[-1].chars + 3)" ( (binary_expression "(int)&ldata[-1].chars + 3" (cast_expression "(int)&ldata[-1].chars" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ldata[-1].chars" & (field_expression "ldata[-1].chars" (subscript_expression "ldata[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "state = 0;" (assignment_expression "state = 0" identifier = number_literal) ;) (expression_statement "add(b,'\0');" (call_expression "add(b,'\0')" identifier (argument_list "(b,'\0')" ( identifier , (char_literal "'\0'" ' escape_sequence ') ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)ldata) {\n    do {\n      ptVar5 = ptVar11;\n      iVar19 = b->len;\n      (*(code *)ldata_1)(b,makeliteral,&state);\n      makeliteral = makeliteral + 0xc;\n      iVar18 = b->len - iVar19;\n      if (iVar18 == iVar13) {\n        puVar6 = b->data;\n        iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13);\n        if (iVar4 != 0) goto LAB_00091d8c;\n        if (iVar13 < 2) {\n          if (iVar16 != 0) goto LAB_00091fbc;\n          iVar16 = 1;\n          goto LAB_00091d90;\n        }\n        ldata = (termline *)(iVar8 + -1);\n        if (iVar16 == 0) {\n          if (ldata == (termline *)0x0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);\n          ldata = (termline *)((int)&ldata[-1].chars + 3);\n          b->len = iVar13 + iVar14 + 1;\n          if ((termline *)0x7f < ldata) goto LAB_00092098;\n          b->data[local_3c] = (uchar)ldata;\n          local_3c = iVar14;\n        }\n        else {\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }\n        if (iVar16 == 0) {\n          iVar14 = 2;\n          if (0 < (int)ptVar5) goto LAB_00091e7c;\n          local_40 = b->data;\n          uVar15 = 0x80;\n        }\n        else {\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }\nLAB_00091f18:\n        iVar16 = 0;\n        iVar13 = 0;\n        iVar14 = 0;\n        local_40[local_3c] = uVar15;\n        local_3c = b->len;\n        (*pcVar20)(b,0);\n        iVar8 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar16 = 0;\nLAB_00091d90:\n        iVar8 = iVar8 + 1;\n        iVar13 = iVar18;\n        iVar14 = iVar19;\n        if (iVar8 == 0x80) {\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }\n      }\n      ptVar11 = (termline *)((int)&ptVar5[-1].chars + 3);\n      ldata = ptVar5;\n    } while (0 < (int)ptVar5);\n  }" if (parenthesized_expression "(0 < (int)ldata)" ( (binary_expression "0 < (int)ldata" number_literal < (cast_expression "(int)ldata" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    do {\n      ptVar5 = ptVar11;\n      iVar19 = b->len;\n      (*(code *)ldata_1)(b,makeliteral,&state);\n      makeliteral = makeliteral + 0xc;\n      iVar18 = b->len - iVar19;\n      if (iVar18 == iVar13) {\n        puVar6 = b->data;\n        iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13);\n        if (iVar4 != 0) goto LAB_00091d8c;\n        if (iVar13 < 2) {\n          if (iVar16 != 0) goto LAB_00091fbc;\n          iVar16 = 1;\n          goto LAB_00091d90;\n        }\n        ldata = (termline *)(iVar8 + -1);\n        if (iVar16 == 0) {\n          if (ldata == (termline *)0x0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);\n          ldata = (termline *)((int)&ldata[-1].chars + 3);\n          b->len = iVar13 + iVar14 + 1;\n          if ((termline *)0x7f < ldata) goto LAB_00092098;\n          b->data[local_3c] = (uchar)ldata;\n          local_3c = iVar14;\n        }\n        else {\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }\n        if (iVar16 == 0) {\n          iVar14 = 2;\n          if (0 < (int)ptVar5) goto LAB_00091e7c;\n          local_40 = b->data;\n          uVar15 = 0x80;\n        }\n        else {\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }\nLAB_00091f18:\n        iVar16 = 0;\n        iVar13 = 0;\n        iVar14 = 0;\n        local_40[local_3c] = uVar15;\n        local_3c = b->len;\n        (*pcVar20)(b,0);\n        iVar8 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar16 = 0;\nLAB_00091d90:\n        iVar8 = iVar8 + 1;\n        iVar13 = iVar18;\n        iVar14 = iVar19;\n        if (iVar8 == 0x80) {\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }\n      }\n      ptVar11 = (termline *)((int)&ptVar5[-1].chars + 3);\n      ldata = ptVar5;\n    } while (0 < (int)ptVar5);\n  }" { (do_statement "do {\n      ptVar5 = ptVar11;\n      iVar19 = b->len;\n      (*(code *)ldata_1)(b,makeliteral,&state);\n      makeliteral = makeliteral + 0xc;\n      iVar18 = b->len - iVar19;\n      if (iVar18 == iVar13) {\n        puVar6 = b->data;\n        iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13);\n        if (iVar4 != 0) goto LAB_00091d8c;\n        if (iVar13 < 2) {\n          if (iVar16 != 0) goto LAB_00091fbc;\n          iVar16 = 1;\n          goto LAB_00091d90;\n        }\n        ldata = (termline *)(iVar8 + -1);\n        if (iVar16 == 0) {\n          if (ldata == (termline *)0x0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);\n          ldata = (termline *)((int)&ldata[-1].chars + 3);\n          b->len = iVar13 + iVar14 + 1;\n          if ((termline *)0x7f < ldata) goto LAB_00092098;\n          b->data[local_3c] = (uchar)ldata;\n          local_3c = iVar14;\n        }\n        else {\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }\n        if (iVar16 == 0) {\n          iVar14 = 2;\n          if (0 < (int)ptVar5) goto LAB_00091e7c;\n          local_40 = b->data;\n          uVar15 = 0x80;\n        }\n        else {\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }\nLAB_00091f18:\n        iVar16 = 0;\n        iVar13 = 0;\n        iVar14 = 0;\n        local_40[local_3c] = uVar15;\n        local_3c = b->len;\n        (*pcVar20)(b,0);\n        iVar8 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar16 = 0;\nLAB_00091d90:\n        iVar8 = iVar8 + 1;\n        iVar13 = iVar18;\n        iVar14 = iVar19;\n        if (iVar8 == 0x80) {\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }\n      }\n      ptVar11 = (termline *)((int)&ptVar5[-1].chars + 3);\n      ldata = ptVar5;\n    } while (0 < (int)ptVar5);" do (compound_statement "{\n      ptVar5 = ptVar11;\n      iVar19 = b->len;\n      (*(code *)ldata_1)(b,makeliteral,&state);\n      makeliteral = makeliteral + 0xc;\n      iVar18 = b->len - iVar19;\n      if (iVar18 == iVar13) {\n        puVar6 = b->data;\n        iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13);\n        if (iVar4 != 0) goto LAB_00091d8c;\n        if (iVar13 < 2) {\n          if (iVar16 != 0) goto LAB_00091fbc;\n          iVar16 = 1;\n          goto LAB_00091d90;\n        }\n        ldata = (termline *)(iVar8 + -1);\n        if (iVar16 == 0) {\n          if (ldata == (termline *)0x0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);\n          ldata = (termline *)((int)&ldata[-1].chars + 3);\n          b->len = iVar13 + iVar14 + 1;\n          if ((termline *)0x7f < ldata) goto LAB_00092098;\n          b->data[local_3c] = (uchar)ldata;\n          local_3c = iVar14;\n        }\n        else {\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }\n        if (iVar16 == 0) {\n          iVar14 = 2;\n          if (0 < (int)ptVar5) goto LAB_00091e7c;\n          local_40 = b->data;\n          uVar15 = 0x80;\n        }\n        else {\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }\nLAB_00091f18:\n        iVar16 = 0;\n        iVar13 = 0;\n        iVar14 = 0;\n        local_40[local_3c] = uVar15;\n        local_3c = b->len;\n        (*pcVar20)(b,0);\n        iVar8 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar16 = 0;\nLAB_00091d90:\n        iVar8 = iVar8 + 1;\n        iVar13 = iVar18;\n        iVar14 = iVar19;\n        if (iVar8 == 0x80) {\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }\n      }\n      ptVar11 = (termline *)((int)&ptVar5[-1].chars + 3);\n      ldata = ptVar5;\n    }" { (expression_statement "ptVar5 = ptVar11;" (assignment_expression "ptVar5 = ptVar11" identifier = identifier) ;) (expression_statement "iVar19 = b->len;" (assignment_expression "iVar19 = b->len" identifier = (field_expression "b->len" identifier -> field_identifier)) ;) (expression_statement "(*(code *)ldata_1)(b,makeliteral,&state);" (call_expression "(*(code *)ldata_1)(b,makeliteral,&state)" (parenthesized_expression "(*(code *)ldata_1)" ( (pointer_expression "*(code *)ldata_1" * (cast_expression "(code *)ldata_1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(b,makeliteral,&state)" ( identifier , identifier , (pointer_expression "&state" & identifier) ))) ;) (expression_statement "makeliteral = makeliteral + 0xc;" (assignment_expression "makeliteral = makeliteral + 0xc" identifier = (binary_expression "makeliteral + 0xc" identifier + number_literal)) ;) (expression_statement "iVar18 = b->len - iVar19;" (assignment_expression "iVar18 = b->len - iVar19" identifier = (binary_expression "b->len - iVar19" (field_expression "b->len" identifier -> field_identifier) - identifier)) ;) (if_statement "if (iVar18 == iVar13) {\n        puVar6 = b->data;\n        iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13);\n        if (iVar4 != 0) goto LAB_00091d8c;\n        if (iVar13 < 2) {\n          if (iVar16 != 0) goto LAB_00091fbc;\n          iVar16 = 1;\n          goto LAB_00091d90;\n        }\n        ldata = (termline *)(iVar8 + -1);\n        if (iVar16 == 0) {\n          if (ldata == (termline *)0x0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);\n          ldata = (termline *)((int)&ldata[-1].chars + 3);\n          b->len = iVar13 + iVar14 + 1;\n          if ((termline *)0x7f < ldata) goto LAB_00092098;\n          b->data[local_3c] = (uchar)ldata;\n          local_3c = iVar14;\n        }\n        else {\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }\n        if (iVar16 == 0) {\n          iVar14 = 2;\n          if (0 < (int)ptVar5) goto LAB_00091e7c;\n          local_40 = b->data;\n          uVar15 = 0x80;\n        }\n        else {\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }\nLAB_00091f18:\n        iVar16 = 0;\n        iVar13 = 0;\n        iVar14 = 0;\n        local_40[local_3c] = uVar15;\n        local_3c = b->len;\n        (*pcVar20)(b,0);\n        iVar8 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar16 = 0;\nLAB_00091d90:\n        iVar8 = iVar8 + 1;\n        iVar13 = iVar18;\n        iVar14 = iVar19;\n        if (iVar8 == 0x80) {\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }\n      }" if (parenthesized_expression "(iVar18 == iVar13)" ( (binary_expression "iVar18 == iVar13" identifier == identifier) )) (compound_statement "{\n        puVar6 = b->data;\n        iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13);\n        if (iVar4 != 0) goto LAB_00091d8c;\n        if (iVar13 < 2) {\n          if (iVar16 != 0) goto LAB_00091fbc;\n          iVar16 = 1;\n          goto LAB_00091d90;\n        }\n        ldata = (termline *)(iVar8 + -1);\n        if (iVar16 == 0) {\n          if (ldata == (termline *)0x0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);\n          ldata = (termline *)((int)&ldata[-1].chars + 3);\n          b->len = iVar13 + iVar14 + 1;\n          if ((termline *)0x7f < ldata) goto LAB_00092098;\n          b->data[local_3c] = (uchar)ldata;\n          local_3c = iVar14;\n        }\n        else {\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }\n        if (iVar16 == 0) {\n          iVar14 = 2;\n          if (0 < (int)ptVar5) goto LAB_00091e7c;\n          local_40 = b->data;\n          uVar15 = 0x80;\n        }\n        else {\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }\nLAB_00091f18:\n        iVar16 = 0;\n        iVar13 = 0;\n        iVar14 = 0;\n        local_40[local_3c] = uVar15;\n        local_3c = b->len;\n        (*pcVar20)(b,0);\n        iVar8 = 0;\n      }" { (expression_statement "puVar6 = b->data;" (assignment_expression "puVar6 = b->data" identifier = (field_expression "b->data" identifier -> field_identifier)) ;) (expression_statement "iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13);" (assignment_expression "iVar4 = (*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13)" identifier = (call_expression "(*(code *)PTR_memcmp_00112430)(puVar6 + iVar14,puVar6 + iVar19,iVar13)" (parenthesized_expression "(*(code *)PTR_memcmp_00112430)" ( (pointer_expression "*(code *)PTR_memcmp_00112430" * (cast_expression "(code *)PTR_memcmp_00112430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6 + iVar14,puVar6 + iVar19,iVar13)" ( (binary_expression "puVar6 + iVar14" identifier + identifier) , (binary_expression "puVar6 + iVar19" identifier + identifier) , identifier )))) ;) (if_statement "if (iVar4 != 0) goto LAB_00091d8c;" if (parenthesized_expression "(iVar4 != 0)" ( (binary_expression "iVar4 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00091d8c;" goto statement_identifier ;)) (if_statement "if (iVar13 < 2) {\n          if (iVar16 != 0) goto LAB_00091fbc;\n          iVar16 = 1;\n          goto LAB_00091d90;\n        }" if (parenthesized_expression "(iVar13 < 2)" ( (binary_expression "iVar13 < 2" identifier < number_literal) )) (compound_statement "{\n          if (iVar16 != 0) goto LAB_00091fbc;\n          iVar16 = 1;\n          goto LAB_00091d90;\n        }" { (if_statement "if (iVar16 != 0) goto LAB_00091fbc;" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00091fbc;" goto statement_identifier ;)) (expression_statement "iVar16 = 1;" (assignment_expression "iVar16 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00091d90;" goto statement_identifier ;) })) (expression_statement "ldata = (termline *)(iVar8 + -1);" (assignment_expression "ldata = (termline *)(iVar8 + -1)" identifier = (cast_expression "(termline *)(iVar8 + -1)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -1)" ( (binary_expression "iVar8 + -1" identifier + number_literal) )))) ;) (if_statement "if (iVar16 == 0) {\n          if (ldata == (termline *)0x0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);\n          ldata = (termline *)((int)&ldata[-1].chars + 3);\n          b->len = iVar13 + iVar14 + 1;\n          if ((termline *)0x7f < ldata) goto LAB_00092098;\n          b->data[local_3c] = (uchar)ldata;\n          local_3c = iVar14;\n        }\n        else {\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n          if (ldata == (termline *)0x0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);\n          ldata = (termline *)((int)&ldata[-1].chars + 3);\n          b->len = iVar13 + iVar14 + 1;\n          if ((termline *)0x7f < ldata) goto LAB_00092098;\n          b->data[local_3c] = (uchar)ldata;\n          local_3c = iVar14;\n        }" { (if_statement "if (ldata == (termline *)0x0) goto LAB_00091e58;" if (parenthesized_expression "(ldata == (termline *)0x0)" ( (binary_expression "ldata == (termline *)0x0" identifier == (cast_expression "(termline *)0x0" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00091e58;" goto statement_identifier ;)) (labeled_statement "LAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);" statement_identifier : (expression_statement "(*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13);" (call_expression "(*(code *)PTR_memmove_00111fe8)(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13)" (parenthesized_expression "(*(code *)PTR_memmove_00111fe8)" ( (pointer_expression "*(code *)PTR_memmove_00111fe8" * (cast_expression "(code *)PTR_memmove_00111fe8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar6 + iVar14 + 1,puVar6 + iVar14,iVar13)" ( (binary_expression "puVar6 + iVar14 + 1" (binary_expression "puVar6 + iVar14" identifier + identifier) + number_literal) , (binary_expression "puVar6 + iVar14" identifier + identifier) , identifier ))) ;)) (expression_statement "ldata = (termline *)((int)&ldata[-1].chars + 3);" (assignment_expression "ldata = (termline *)((int)&ldata[-1].chars + 3)" identifier = (cast_expression "(termline *)((int)&ldata[-1].chars + 3)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ldata[-1].chars + 3)" ( (binary_expression "(int)&ldata[-1].chars + 3" (cast_expression "(int)&ldata[-1].chars" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ldata[-1].chars" & (field_expression "ldata[-1].chars" (subscript_expression "ldata[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "b->len = iVar13 + iVar14 + 1;" (assignment_expression "b->len = iVar13 + iVar14 + 1" (field_expression "b->len" identifier -> field_identifier) = (binary_expression "iVar13 + iVar14 + 1" (binary_expression "iVar13 + iVar14" identifier + identifier) + number_literal)) ;) (if_statement "if ((termline *)0x7f < ldata) goto LAB_00092098;" if (parenthesized_expression "((termline *)0x7f < ldata)" ( (binary_expression "(termline *)0x7f < ldata" (cast_expression "(termline *)0x7f" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < identifier) )) (goto_statement "goto LAB_00092098;" goto statement_identifier ;)) (expression_statement "b->data[local_3c] = (uchar)ldata;" (assignment_expression "b->data[local_3c] = (uchar)ldata" (subscript_expression "b->data[local_3c]" (field_expression "b->data" identifier -> field_identifier) [ identifier ]) = (cast_expression "(uchar)ldata" ( (type_descriptor "uchar" type_identifier) ) identifier)) ;) (expression_statement "local_3c = iVar14;" (assignment_expression "local_3c = iVar14" identifier = identifier) ;) }) (else_clause "else {\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }" else (compound_statement "{\nLAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);\n          if (iVar8 + -1 < 1) goto LAB_000920bc;\n          iVar14 = iVar14 - iVar13;\n          if (ldata != (termline *)0x0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;\n          iVar14 = iVar13 + iVar14;\n          if (bVar1) goto LAB_00092068;\n          b->len = iVar14;\n        }" { (labeled_statement "LAB_00091fbc:\n          ldata = (termline *)(iVar8 + -2);" statement_identifier : (expression_statement "ldata = (termline *)(iVar8 + -2);" (assignment_expression "ldata = (termline *)(iVar8 + -2)" identifier = (cast_expression "(termline *)(iVar8 + -2)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + -2)" ( (binary_expression "iVar8 + -2" identifier + number_literal) )))) ;)) (if_statement "if (iVar8 + -1 < 1) goto LAB_000920bc;" if (parenthesized_expression "(iVar8 + -1 < 1)" ( (binary_expression "iVar8 + -1 < 1" (binary_expression "iVar8 + -1" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_000920bc;" goto statement_identifier ;)) (expression_statement "iVar14 = iVar14 - iVar13;" (assignment_expression "iVar14 = iVar14 - iVar13" identifier = (binary_expression "iVar14 - iVar13" identifier - identifier)) ;) (if_statement "if (ldata != (termline *)0x0) goto LAB_00091fcc;" if (parenthesized_expression "(ldata != (termline *)0x0)" ( (binary_expression "ldata != (termline *)0x0" identifier != (cast_expression "(termline *)0x0" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_00091fcc;" goto statement_identifier ;)) (labeled_statement "LAB_00091e58:\n          bVar1 = local_3c + 1 != iVar14;" statement_identifier : (expression_statement "bVar1 = local_3c + 1 != iVar14;" (assignment_expression "bVar1 = local_3c + 1 != iVar14" identifier = (binary_expression "local_3c + 1 != iVar14" (binary_expression "local_3c + 1" identifier + number_literal) != identifier)) ;)) (expression_statement "iVar14 = iVar13 + iVar14;" (assignment_expression "iVar14 = iVar13 + iVar14" identifier = (binary_expression "iVar13 + iVar14" identifier + identifier)) ;) (if_statement "if (bVar1) goto LAB_00092068;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_00092068;" goto statement_identifier ;)) (expression_statement "b->len = iVar14;" (assignment_expression "b->len = iVar14" (field_expression "b->len" identifier -> field_identifier) = identifier) ;) }))) (if_statement "if (iVar16 == 0) {\n          iVar14 = 2;\n          if (0 < (int)ptVar5) goto LAB_00091e7c;\n          local_40 = b->data;\n          uVar15 = 0x80;\n        }\n        else {\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar14 = 2;\n          if (0 < (int)ptVar5) goto LAB_00091e7c;\n          local_40 = b->data;\n          uVar15 = 0x80;\n        }" { (expression_statement "iVar14 = 2;" (assignment_expression "iVar14 = 2" identifier = number_literal) ;) (if_statement "if (0 < (int)ptVar5) goto LAB_00091e7c;" if (parenthesized_expression "(0 < (int)ptVar5)" ( (binary_expression "0 < (int)ptVar5" number_literal < (cast_expression "(int)ptVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00091e7c;" goto statement_identifier ;)) (expression_statement "local_40 = b->data;" (assignment_expression "local_40 = b->data" identifier = (field_expression "b->data" identifier -> field_identifier)) ;) (expression_statement "uVar15 = 0x80;" (assignment_expression "uVar15 = 0x80" identifier = number_literal) ;) }) (else_clause "else {\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }" else (compound_statement "{\n          iVar14 = 3;\n          if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }\n        }" { (expression_statement "iVar14 = 3;" (assignment_expression "iVar14 = 3" identifier = number_literal) ;) (if_statement "if ((int)ptVar5 < 1) {\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }\n          else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }" if (parenthesized_expression "((int)ptVar5 < 1)" ( (binary_expression "(int)ptVar5 < 1" (cast_expression "(int)ptVar5" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            local_40 = b->data;\n            uVar15 = 0x81;\n          }" { (expression_statement "local_40 = b->data;" (assignment_expression "local_40 = b->data" identifier = (field_expression "b->data" identifier -> field_identifier)) ;) (expression_statement "uVar15 = 0x81;" (assignment_expression "uVar15 = 0x81" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }" else (compound_statement "{\nLAB_00091e7c:\n            iVar8 = b->len;\n            do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);\n            uVar15 = 0xff;\n          }" { (labeled_statement "LAB_00091e7c:\n            iVar8 = b->len;" statement_identifier : (expression_statement "iVar8 = b->len;" (assignment_expression "iVar8 = b->len" identifier = (field_expression "b->len" identifier -> field_identifier)) ;)) (do_statement "do {\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar14 != 0x81);" do (compound_statement "{\n              uVar3 = state;\n              (*(code *)ldata_1)(b,makeliteral,&state);\n              iVar16 = b->len;\n              b->len = iVar8;\n              cVar2 = (char)iVar14;\n              if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }\n              local_40 = b->data;\n              iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);\n              if (iVar16 != 0) goto LAB_00091f08;\n              ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);\n              makeliteral = makeliteral + 0xc;\n              iVar14 = iVar14 + 1;\n              if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }\n            }" { (expression_statement "uVar3 = state;" (assignment_expression "uVar3 = state" identifier = identifier) ;) (expression_statement "(*(code *)ldata_1)(b,makeliteral,&state);" (call_expression "(*(code *)ldata_1)(b,makeliteral,&state)" (parenthesized_expression "(*(code *)ldata_1)" ( (pointer_expression "*(code *)ldata_1" * (cast_expression "(code *)ldata_1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(b,makeliteral,&state)" ( identifier , identifier , (pointer_expression "&state" & identifier) ))) ;) (expression_statement "iVar16 = b->len;" (assignment_expression "iVar16 = b->len" identifier = (field_expression "b->len" identifier -> field_identifier)) ;) (expression_statement "b->len = iVar8;" (assignment_expression "b->len = iVar8" (field_expression "b->len" identifier -> field_identifier) = identifier) ;) (expression_statement "cVar2 = (char)iVar14;" (assignment_expression "cVar2 = (char)iVar14" identifier = (cast_expression "(char)iVar14" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar13 != iVar16 - iVar8) {\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }" if (parenthesized_expression "(iVar13 != iVar16 - iVar8)" ( (binary_expression "iVar13 != iVar16 - iVar8" identifier != (binary_expression "iVar16 - iVar8" identifier - identifier)) )) (compound_statement "{\n                local_40 = b->data;\nLAB_00091f08:\n                uVar15 = cVar2 + '~';\n                state = uVar3;\n                goto LAB_00091f18;\n              }" { (expression_statement "local_40 = b->data;" (assignment_expression "local_40 = b->data" identifier = (field_expression "b->data" identifier -> field_identifier)) ;) (labeled_statement "LAB_00091f08:\n                uVar15 = cVar2 + '~';" statement_identifier : (expression_statement "uVar15 = cVar2 + '~';" (assignment_expression "uVar15 = cVar2 + '~'" identifier = (binary_expression "cVar2 + '~'" identifier + (char_literal "'~'" ' character '))) ;)) (expression_statement "state = uVar3;" (assignment_expression "state = uVar3" identifier = identifier) ;) (goto_statement "goto LAB_00091f18;" goto statement_identifier ;) })) (expression_statement "local_40 = b->data;" (assignment_expression "local_40 = b->data" identifier = (field_expression "b->data" identifier -> field_identifier)) ;) (expression_statement "iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13);" (assignment_expression "iVar16 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13)" identifier = (call_expression "(*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar8,iVar13)" (parenthesized_expression "(*(code *)PTR_memcmp_00112430)" ( (pointer_expression "*(code *)PTR_memcmp_00112430" * (cast_expression "(code *)PTR_memcmp_00112430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40 + local_3c + 1,local_40 + iVar8,iVar13)" ( (binary_expression "local_40 + local_3c + 1" (binary_expression "local_40 + local_3c" identifier + identifier) + number_literal) , (binary_expression "local_40 + iVar8" identifier + identifier) , identifier )))) ;) (if_statement "if (iVar16 != 0) goto LAB_00091f08;" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00091f08;" goto statement_identifier ;)) (expression_statement "ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3);" (assignment_expression "ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3)" identifier = (cast_expression "(termline *)((int)&ptVar5[-1].chars + 3)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar5[-1].chars + 3)" ( (binary_expression "(int)&ptVar5[-1].chars + 3" (cast_expression "(int)&ptVar5[-1].chars" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar5[-1].chars" & (field_expression "ptVar5[-1].chars" (subscript_expression "ptVar5[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "makeliteral = makeliteral + 0xc;" (assignment_expression "makeliteral = makeliteral + 0xc" identifier = (binary_expression "makeliteral + 0xc" identifier + number_literal)) ;) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (if_statement "if (ptVar5 == (termline *)0x0) {\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }" if (parenthesized_expression "(ptVar5 == (termline *)0x0)" ( (binary_expression "ptVar5 == (termline *)0x0" identifier == (cast_expression "(termline *)0x0" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n                uVar15 = cVar2 + '\x7f';\n                goto LAB_00091f18;\n              }" { (expression_statement "uVar15 = cVar2 + '\x7f';" (assignment_expression "uVar15 = cVar2 + '\x7f'" identifier = (binary_expression "cVar2 + '\x7f'" identifier + (char_literal "'\x7f'" ' escape_sequence '))) ;) (goto_statement "goto LAB_00091f18;" goto statement_identifier ;) })) }) while (parenthesized_expression "(iVar14 != 0x81)" ( (binary_expression "iVar14 != 0x81" identifier != number_literal) )) ;) (expression_statement "uVar15 = 0xff;" (assignment_expression "uVar15 = 0xff" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00091f18:\n        iVar16 = 0;" statement_identifier : (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;)) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "local_40[local_3c] = uVar15;" (assignment_expression "local_40[local_3c] = uVar15" (subscript_expression "local_40[local_3c]" identifier [ identifier ]) = identifier) ;) (expression_statement "local_3c = b->len;" (assignment_expression "local_3c = b->len" identifier = (field_expression "b->len" identifier -> field_identifier)) ;) (expression_statement "(*pcVar20)(b,0);" (call_expression "(*pcVar20)(b,0)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(b,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00091d8c:\n        iVar16 = 0;\nLAB_00091d90:\n        iVar8 = iVar8 + 1;\n        iVar13 = iVar18;\n        iVar14 = iVar19;\n        if (iVar8 == 0x80) {\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }\n      }" else (compound_statement "{\nLAB_00091d8c:\n        iVar16 = 0;\nLAB_00091d90:\n        iVar8 = iVar8 + 1;\n        iVar13 = iVar18;\n        iVar14 = iVar19;\n        if (iVar8 == 0x80) {\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }\n      }" { (labeled_statement "LAB_00091d8c:\n        iVar16 = 0;" statement_identifier : (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_00091d90:\n        iVar8 = iVar8 + 1;" statement_identifier : (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;)) (expression_statement "iVar13 = iVar18;" (assignment_expression "iVar13 = iVar18" identifier = identifier) ;) (expression_statement "iVar14 = iVar19;" (assignment_expression "iVar14 = iVar19" identifier = identifier) ;) (if_statement "if (iVar8 == 0x80) {\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }" if (parenthesized_expression "(iVar8 == 0x80)" ( (binary_expression "iVar8 == 0x80" identifier == number_literal) )) (compound_statement "{\n          iVar16 = 0;\n          iVar14 = 0;\n          iVar13 = 0;\n          b->data[local_3c] = '\x7f';\n          local_3c = b->len;\n          (*pcVar20)(b,0);\n          iVar8 = 0;\n        }" { (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;) (expression_statement "iVar14 = 0;" (assignment_expression "iVar14 = 0" identifier = number_literal) ;) (expression_statement "iVar13 = 0;" (assignment_expression "iVar13 = 0" identifier = number_literal) ;) (expression_statement "b->data[local_3c] = '\x7f';" (assignment_expression "b->data[local_3c] = '\x7f'" (subscript_expression "b->data[local_3c]" (field_expression "b->data" identifier -> field_identifier) [ identifier ]) = (char_literal "'\x7f'" ' escape_sequence ')) ;) (expression_statement "local_3c = b->len;" (assignment_expression "local_3c = b->len" identifier = (field_expression "b->len" identifier -> field_identifier)) ;) (expression_statement "(*pcVar20)(b,0);" (call_expression "(*pcVar20)(b,0)" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "(b,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) })) }))) (expression_statement "ptVar11 = (termline *)((int)&ptVar5[-1].chars + 3);" (assignment_expression "ptVar11 = (termline *)((int)&ptVar5[-1].chars + 3)" identifier = (cast_expression "(termline *)((int)&ptVar5[-1].chars + 3)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar5[-1].chars + 3)" ( (binary_expression "(int)&ptVar5[-1].chars + 3" (cast_expression "(int)&ptVar5[-1].chars" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar5[-1].chars" & (field_expression "ptVar5[-1].chars" (subscript_expression "ptVar5[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "ldata = ptVar5;" (assignment_expression "ldata = ptVar5" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)ptVar5)" ( (binary_expression "0 < (int)ptVar5" number_literal < (cast_expression "(int)ptVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "ptVar5 = ptVar11;" (assignment_expression "ptVar5 = ptVar11" identifier = identifier) ;) (if_statement "if (iVar8 == 0) {\n    b->len = local_3c;\n  }\n  else {\n    if (0x80 < iVar8) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,\n                 PTR_E1_202__001112f8 + 0x63ac);\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac);\n      goto LAB_0009208c;\n    }\n    b->data[local_3c] = (char)iVar8 + 0xff;\n  }" if (parenthesized_expression "(iVar8 == 0)" ( (binary_expression "iVar8 == 0" identifier == number_literal) )) (compound_statement "{\n    b->len = local_3c;\n  }" { (expression_statement "b->len = local_3c;" (assignment_expression "b->len = local_3c" (field_expression "b->len" identifier -> field_identifier) = identifier) ;) }) (else_clause "else {\n    if (0x80 < iVar8) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,\n                 PTR_E1_202__001112f8 + 0x63ac);\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac);\n      goto LAB_0009208c;\n    }\n    b->data[local_3c] = (char)iVar8 + 0xff;\n  }" else (compound_statement "{\n    if (0x80 < iVar8) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,\n                 PTR_E1_202__001112f8 + 0x63ac);\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac);\n      goto LAB_0009208c;\n    }\n    b->data[local_3c] = (char)iVar8 + 0xff;\n  }" { (if_statement "if (0x80 < iVar8) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,\n                 PTR_E1_202__001112f8 + 0x63ac);\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac);\n      goto LAB_0009208c;\n    }" if (parenthesized_expression "(0x80 < iVar8)" ( (binary_expression "0x80 < iVar8" number_literal < identifier) )) (compound_statement "{\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,\n                 PTR_E1_202__001112f8 + 0x63ac);\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac);\n      goto LAB_0009208c;\n    }" { (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,\n                 PTR_E1_202__001112f8 + 0x63ac);" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,\n                 PTR_E1_202__001112f8 + 0x63ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_E1_202__001112f8 + 0x58e4,PTR_E1_202__001112f8 + 0x5830,0x21b,\n                 PTR_E1_202__001112f8 + 0x63ac)" ( (binary_expression "PTR_E1_202__001112f8 + 0x58e4" identifier + number_literal) , (binary_expression "PTR_E1_202__001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_E1_202__001112f8 + 0x63ac" identifier + number_literal) ))) ;) (labeled_statement "LAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac);" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac);" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_E1_202__001112f8 + 0x58bc,PTR_E1_202__001112f8 + 0x5830,0x1cd,\n                 PTR_E1_202__001112f8 + 0x63ac)" ( (binary_expression "PTR_E1_202__001112f8 + 0x58bc" identifier + number_literal) , (binary_expression "PTR_E1_202__001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_E1_202__001112f8 + 0x63ac" identifier + number_literal) ))) ;)) (goto_statement "goto LAB_0009208c;" goto statement_identifier ;) })) (expression_statement "b->data[local_3c] = (char)iVar8 + 0xff;" (assignment_expression "b->data[local_3c] = (char)iVar8 + 0xff" (subscript_expression "b->data[local_3c]" (field_expression "b->data" identifier -> field_identifier) [ identifier ]) = (binary_expression "(char)iVar8 + 0xff" (cast_expression "(char)iVar8" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) }))) (if_statement "if (local_2c == *(int *)puVar22) {\n    return;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar22)" ( (binary_expression "local_2c == *(int *)puVar22" identifier == (pointer_expression "*(int *)puVar22" * (cast_expression "(int *)puVar22" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();" statement_identifier : (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" * (cast_expression "(code *)PTR___stack_chk_fail_001122c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_E1_202__001112f8 + 0x58d4,PTR_E1_202__001112f8 + 0x5830,0x1d8,\n             PTR_E1_202__001112f8 + 0x63ac);" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n            (PTR_E1_202__001112f8 + 0x58d4,PTR_E1_202__001112f8 + 0x5830,0x1d8,\n             PTR_E1_202__001112f8 + 0x63ac);" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n            (PTR_E1_202__001112f8 + 0x58d4,PTR_E1_202__001112f8 + 0x5830,0x1d8,\n             PTR_E1_202__001112f8 + 0x63ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_E1_202__001112f8 + 0x58d4,PTR_E1_202__001112f8 + 0x5830,0x1d8,\n             PTR_E1_202__001112f8 + 0x63ac)" ( (binary_expression "PTR_E1_202__001112f8 + 0x58d4" identifier + number_literal) , (binary_expression "PTR_E1_202__001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_E1_202__001112f8 + 0x63ac" identifier + number_literal) ))) ;)) (labeled_statement "LAB_000920bc:\n  pcVar20 = compressline;" statement_identifier : (expression_statement "pcVar20 = compressline;" (assignment_expression "pcVar20 = compressline" identifier = identifier) ;)) (expression_statement "puVar9 = (ushort *)(PTR_E1_202__001112f8 + 0x58b0);" (assignment_expression "puVar9 = (ushort *)(PTR_E1_202__001112f8 + 0x58b0)" identifier = (cast_expression "(ushort *)(PTR_E1_202__001112f8 + 0x58b0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_E1_202__001112f8 + 0x58b0)" ( (binary_expression "PTR_E1_202__001112f8 + 0x58b0" identifier + number_literal) )))) ;) (expression_statement "puVar21 = PTR___assert_fail_00111f50;" (assignment_expression "puVar21 = PTR___assert_fail_00111f50" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n            (puVar9,PTR_E1_202__001112f8 + 0x5830,0x1c7,PTR_E1_202__001112f8 + 0x63ac);" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n            (puVar9,PTR_E1_202__001112f8 + 0x5830,0x1c7,PTR_E1_202__001112f8 + 0x63ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar9,PTR_E1_202__001112f8 + 0x5830,0x1c7,PTR_E1_202__001112f8 + 0x63ac)" ( identifier , (binary_expression "PTR_E1_202__001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_E1_202__001112f8 + 0x63ac" identifier + number_literal) ))) ;) (expression_statement "puVar22 = puVar21 + 0x871d0;" (assignment_expression "puVar22 = puVar21 + 0x871d0" identifier = (binary_expression "puVar21 + 0x871d0" identifier + number_literal)) ;) (expression_statement "piVar17 = *(int **)(puVar21 + 0x80550);" (assignment_expression "piVar17 = *(int **)(puVar21 + 0x80550)" identifier = (pointer_expression "*(int **)(puVar21 + 0x80550)" * (cast_expression "(int **)(puVar21 + 0x80550)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x80550)" ( (binary_expression "puVar21 + 0x80550" identifier + number_literal) ))))) ;) (expression_statement "iVar8 = *(int *)(puVar9 + 2);" (assignment_expression "iVar8 = *(int *)(puVar9 + 2)" identifier = (pointer_expression "*(int *)(puVar9 + 2)" * (cast_expression "(int *)(puVar9 + 2)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar9 + 2)" ( (binary_expression "puVar9 + 2" identifier + number_literal) ))))) ;) (expression_statement "bStack_90.data = (uchar *)0x0;" (assignment_expression "bStack_90.data = (uchar *)0x0" (field_expression "bStack_90.data" identifier . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bStack_90.len = 0;" (assignment_expression "bStack_90.len = 0" (field_expression "bStack_90.len" identifier . field_identifier) = number_literal) ;) (expression_statement "bStack_90.size = 0;" (assignment_expression "bStack_90.size = 0" (field_expression "bStack_90.size" identifier . field_identifier) = number_literal) ;) (expression_statement "pTStack_84 = (Terminal *)*piVar17;" (assignment_expression "pTStack_84 = (Terminal *)*piVar17" identifier = (cast_expression "(Terminal *)*piVar17" ( (type_descriptor "Terminal *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar17" * identifier))) ;) (expression_statement "p_Stack_7c = makeliteral;" (assignment_expression "p_Stack_7c = makeliteral" identifier = identifier) ;) (expression_statement "ptStack_78 = ptVar5;" (assignment_expression "ptStack_78 = ptVar5" identifier = identifier) ;) (expression_statement "iStack_74 = iVar13;" (assignment_expression "iStack_74 = iVar13" identifier = identifier) ;) (expression_statement "iStack_70 = iVar14;" (assignment_expression "iStack_70 = iVar14" identifier = identifier) ;) (expression_statement "iStack_6c = iVar16;" (assignment_expression "iStack_6c = iVar16" identifier = identifier) ;) (expression_statement "ptStack_68 = ldata;" (assignment_expression "ptStack_68 = ldata" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar20;" (assignment_expression "pcStack_64 = pcVar20" identifier = identifier) ;) (for_statement "for (; 0x7f < iVar8; iVar8 = iVar8 >> 7) {\n    add(&bStack_90,(byte)iVar8 | 0x80);\n  }" for ( ; (binary_expression "0x7f < iVar8" number_literal < identifier) ; (assignment_expression "iVar8 = iVar8 >> 7" identifier = (binary_expression "iVar8 >> 7" identifier >> number_literal)) ) (compound_statement "{\n    add(&bStack_90,(byte)iVar8 | 0x80);\n  }" { (expression_statement "add(&bStack_90,(byte)iVar8 | 0x80);" (call_expression "add(&bStack_90,(byte)iVar8 | 0x80)" identifier (argument_list "(&bStack_90,(byte)iVar8 | 0x80)" ( (pointer_expression "&bStack_90" & identifier) , (binary_expression "(byte)iVar8 | 0x80" (cast_expression "(byte)iVar8" ( (type_descriptor "byte" type_identifier) ) identifier) | number_literal) ))) ;) })) (expression_statement "add(&bStack_90,(byte)iVar8);" (call_expression "add(&bStack_90,(byte)iVar8)" identifier (argument_list "(&bStack_90,(byte)iVar8)" ( (pointer_expression "&bStack_90" & identifier) , (cast_expression "(byte)iVar8" ( (type_descriptor "byte" type_identifier) ) identifier) ))) ;) (for_statement "for (uVar12 = (uint)*puVar9; 0x7f < uVar12; uVar12 = (int)uVar12 >> 7) {\n    add(&bStack_90,(byte)uVar12 | 0x80);\n  }" for ( (assignment_expression "uVar12 = (uint)*puVar9" identifier = (binary_expression "(uint)*puVar9" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ; (binary_expression "0x7f < uVar12" number_literal < identifier) ; (assignment_expression "uVar12 = (int)uVar12 >> 7" identifier = (binary_expression "(int)uVar12 >> 7" (cast_expression "(int)uVar12" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ) (compound_statement "{\n    add(&bStack_90,(byte)uVar12 | 0x80);\n  }" { (expression_statement "add(&bStack_90,(byte)uVar12 | 0x80);" (call_expression "add(&bStack_90,(byte)uVar12 | 0x80)" identifier (argument_list "(&bStack_90,(byte)uVar12 | 0x80)" ( (pointer_expression "&bStack_90" & identifier) , (binary_expression "(byte)uVar12 | 0x80" (cast_expression "(byte)uVar12" ( (type_descriptor "byte" type_identifier) ) identifier) | number_literal) ))) ;) })) (expression_statement "add(&bStack_90,(byte)uVar12);" (call_expression "add(&bStack_90,(byte)uVar12)" identifier (argument_list "(&bStack_90,(byte)uVar12)" ( (pointer_expression "&bStack_90" & identifier) , (cast_expression "(byte)uVar12" ( (type_descriptor "byte" type_identifier) ) identifier) ))) ;) (expression_statement "makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x58));" (call_expression "makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x58))" identifier (argument_list "(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x58))" ( (pointer_expression "&bStack_90" & identifier) , (pointer_expression "*(termline **)(puVar9 + 2)" * (cast_expression "(termline **)(puVar9 + 2)" ( (type_descriptor "termline **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 2)" ( (binary_expression "puVar9 + 2" identifier + number_literal) )))) , (pointer_expression "*(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10)" * (cast_expression "(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10)" ( (type_descriptor "_func_void_buf_ptr_termchar_ptr_ulong_ptr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 10)" ( (binary_expression "puVar9 + 10" identifier + number_literal) )))) , (cast_expression "(termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x58)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x7f9f8) + 0x58)" ( (binary_expression "*(int *)(puVar21 + 0x7f9f8) + 0x58" (pointer_expression "*(int *)(puVar21 + 0x7f9f8)" * (cast_expression "(int *)(puVar21 + 0x7f9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x7f9f8)" ( (binary_expression "puVar21 + 0x7f9f8" identifier + number_literal) )))) + number_literal) ))) ))) ;) (expression_statement "makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + -0xd4));" (call_expression "makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + -0xd4))" identifier (argument_list "(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),\n          (termline *)(*(int *)(puVar21 + 0x7f9f8) + -0xd4))" ( (pointer_expression "&bStack_90" & identifier) , (pointer_expression "*(termline **)(puVar9 + 2)" * (cast_expression "(termline **)(puVar9 + 2)" ( (type_descriptor "termline **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 2)" ( (binary_expression "puVar9 + 2" identifier + number_literal) )))) , (pointer_expression "*(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10)" * (cast_expression "(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10)" ( (type_descriptor "_func_void_buf_ptr_termchar_ptr_ulong_ptr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 10)" ( (binary_expression "puVar9 + 10" identifier + number_literal) )))) , (cast_expression "(termline *)(*(int *)(puVar21 + 0x7f9f8) + -0xd4)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x7f9f8) + -0xd4)" ( (binary_expression "*(int *)(puVar21 + 0x7f9f8) + -0xd4" (pointer_expression "*(int *)(puVar21 + 0x7f9f8)" * (cast_expression "(int *)(puVar21 + 0x7f9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x7f9f8)" ( (binary_expression "puVar21 + 0x7f9f8" identifier + number_literal) )))) + number_literal) ))) ))) ;) (expression_statement "ptVar11 = (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x1138);" (assignment_expression "ptVar11 = (termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x1138)" identifier = (cast_expression "(termline *)(*(int *)(puVar21 + 0x7f9f8) + 0x1138)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(puVar21 + 0x7f9f8) + 0x1138)" ( (binary_expression "*(int *)(puVar21 + 0x7f9f8) + 0x1138" (pointer_expression "*(int *)(puVar21 + 0x7f9f8)" * (cast_expression "(int *)(puVar21 + 0x7f9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar21 + 0x7f9f8)" ( (binary_expression "puVar21 + 0x7f9f8" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),ptVar11);" (call_expression "makerle(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),ptVar11)" identifier (argument_list "(&bStack_90,*(termline **)(puVar9 + 2),\n          *(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10),ptVar11)" ( (pointer_expression "&bStack_90" & identifier) , (pointer_expression "*(termline **)(puVar9 + 2)" * (cast_expression "(termline **)(puVar9 + 2)" ( (type_descriptor "termline **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 2)" ( (binary_expression "puVar9 + 2" identifier + number_literal) )))) , (pointer_expression "*(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10)" * (cast_expression "(_func_void_buf_ptr_termchar_ptr_ulong_ptr **)(puVar9 + 10)" ( (type_descriptor "_func_void_buf_ptr_termchar_ptr_ulong_ptr **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar9 + 10)" ( (binary_expression "puVar9 + 10" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "iVar14 = 1;" (assignment_expression "iVar14 = 1" identifier = number_literal) ;) (expression_statement "iVar13 = bStack_90.len;" (assignment_expression "iVar13 = bStack_90.len" identifier = (field_expression "bStack_90.len" identifier . field_identifier)) ;) (expression_statement "(**(code **)(puVar21 + 0x7f310))(bStack_90.data);" (call_expression "(**(code **)(puVar21 + 0x7f310))(bStack_90.data)" (parenthesized_expression "(**(code **)(puVar21 + 0x7f310))" ( (pointer_expression "**(code **)(puVar21 + 0x7f310)" * (pointer_expression "*(code **)(puVar21 + 0x7f310)" * (cast_expression "(code **)(puVar21 + 0x7f310)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x7f310)" ( (binary_expression "puVar21 + 0x7f310" identifier + number_literal) ))))) )) (argument_list "(bStack_90.data)" ( (field_expression "bStack_90.data" identifier . field_identifier) ))) ;) (if_statement "if (pTStack_84 == (Terminal *)*piVar17) {\n    return;\n  }" if (parenthesized_expression "(pTStack_84 == (Terminal *)*piVar17)" ( (binary_expression "pTStack_84 == (Terminal *)*piVar17" identifier == (cast_expression "(Terminal *)*piVar17" ( (type_descriptor "Terminal *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "*piVar17" * identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar20 = *(code **)(puVar21 + 0x801e8);" (assignment_expression "pcVar20 = *(code **)(puVar21 + 0x801e8)" identifier = (pointer_expression "*(code **)(puVar21 + 0x801e8)" * (cast_expression "(code **)(puVar21 + 0x801e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x801e8)" ( (binary_expression "puVar21 + 0x801e8" identifier + number_literal) ))))) ;) (expression_statement "term = pTStack_84;" (assignment_expression "term = pTStack_84" identifier = identifier) ;) (expression_statement "(*pcVar20)();" (call_expression "(*pcVar20)()" (parenthesized_expression "(*pcVar20)" ( (pointer_expression "*pcVar20" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar13 == 0) {\n    iVar8 = iVar14;\n    if (term->alt_which != 0) {\n      puVar22 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar22 = (undefined *)0x0;\n    iVar8 = iVar14 - iVar13;\n  }" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar8 = iVar14;\n    if (term->alt_which != 0) {\n      puVar22 = (undefined *)0x0;\n    }\n  }" { (expression_statement "iVar8 = iVar14;" (assignment_expression "iVar8 = iVar14" identifier = identifier) ;) (if_statement "if (term->alt_which != 0) {\n      puVar22 = (undefined *)0x0;\n    }" if (parenthesized_expression "(term->alt_which != 0)" ( (binary_expression "term->alt_which != 0" (field_expression "term->alt_which" identifier -> field_identifier) != number_literal) )) (compound_statement "{\n      puVar22 = (undefined *)0x0;\n    }" { (expression_statement "puVar22 = (undefined *)0x0;" (assignment_expression "puVar22 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    puVar22 = (undefined *)0x0;\n    iVar8 = iVar14 - iVar13;\n  }" else (compound_statement "{\n    puVar22 = (undefined *)0x0;\n    iVar8 = iVar14 - iVar13;\n  }" { (expression_statement "puVar22 = (undefined *)0x0;" (assignment_expression "puVar22 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar8 = iVar14 - iVar13;" (assignment_expression "iVar8 = iVar14 - iVar13" identifier = (binary_expression "iVar14 - iVar13" identifier - identifier)) ;) }))) (expression_statement "ptVar5 = (termline *)(iVar8 + 1);" (assignment_expression "ptVar5 = (termline *)(iVar8 + 1)" identifier = (cast_expression "(termline *)(iVar8 + 1)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 1)" ( (binary_expression "iVar8 + 1" identifier + number_literal) )))) ;) (if_statement "if ((int)ptVar11 < 0) {\n    if (-(int)ptVar11 <= (int)ptVar5) {\n      ptVar5 = (termline *)-(int)ptVar11;\n    }\n    for (; 0 < (int)ptVar5; ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3)) {\n      iVar8 = 0;\n      ptVar11 = (termline *)delpos234(term->screen,iVar14);\n      resizeline(term,ptVar11,term->cols);\n      if (0 < term->cols) {\n        do {\n          copy_termchar(ptVar11,iVar8,&term->erase_char);\n          iVar8 = iVar8 + 1;\n        } while (iVar8 < term->cols);\n      }\n      ptVar10 = term->screen;\n      ptVar11->lattr = 0;\n      addpos234(ptVar10,ptVar11,iVar13);\n      iVar8 = (term->selstart).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selstart).x = 0;\n        }\n        (term->selstart).y = iVar16;\n      }\n      iVar8 = (term->selend).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selend).x = 0;\n        }\n        (term->selend).y = iVar16;\n      }\n    }\n  }\n  else {\n    iVar8 = *(int *)(pcVar20 + 0x7f84c);\n    if ((int)ptVar5 <= (int)ptVar11) {\n      ptVar11 = ptVar5;\n    }\n    for (; 0 < (int)ptVar11; ptVar11 = (termline *)((int)&ptVar11[-1].chars + 3)) {\n      ptVar5 = (termline *)delpos234(term->screen,iVar13);\n      iVar16 = iVar13;\n      if (puVar22 == (undefined *)0x0) {\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (0 < term->cols) goto LAB_00092364;\n        ptVar10 = term->screen;\n        ptVar5->lattr = 0;\n        addpos234(ptVar10,ptVar5,iVar14);\n      }\n      else {\n        if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar16 = -term->savelines;\n      }\nLAB_000923b8:\n      if (term->selstate != ADDRTYPE_UNSPEC) {\n        iVar18 = (term->selstart).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selend).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selanchor).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "((int)ptVar11 < 0)" ( (binary_expression "(int)ptVar11 < 0" (cast_expression "(int)ptVar11" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    if (-(int)ptVar11 <= (int)ptVar5) {\n      ptVar5 = (termline *)-(int)ptVar11;\n    }\n    for (; 0 < (int)ptVar5; ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3)) {\n      iVar8 = 0;\n      ptVar11 = (termline *)delpos234(term->screen,iVar14);\n      resizeline(term,ptVar11,term->cols);\n      if (0 < term->cols) {\n        do {\n          copy_termchar(ptVar11,iVar8,&term->erase_char);\n          iVar8 = iVar8 + 1;\n        } while (iVar8 < term->cols);\n      }\n      ptVar10 = term->screen;\n      ptVar11->lattr = 0;\n      addpos234(ptVar10,ptVar11,iVar13);\n      iVar8 = (term->selstart).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selstart).x = 0;\n        }\n        (term->selstart).y = iVar16;\n      }\n      iVar8 = (term->selend).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selend).x = 0;\n        }\n        (term->selend).y = iVar16;\n      }\n    }\n  }" { (if_statement "if (-(int)ptVar11 <= (int)ptVar5) {\n      ptVar5 = (termline *)-(int)ptVar11;\n    }" if (parenthesized_expression "(-(int)ptVar11 <= (int)ptVar5)" ( (binary_expression "-(int)ptVar11 <= (int)ptVar5" (unary_expression "-(int)ptVar11" - (cast_expression "(int)ptVar11" ( (type_descriptor "int" primitive_type) ) identifier)) <= (cast_expression "(int)ptVar5" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      ptVar5 = (termline *)-(int)ptVar11;\n    }" { (expression_statement "ptVar5 = (termline *)-(int)ptVar11;" (assignment_expression "ptVar5 = (termline *)-(int)ptVar11" identifier = (cast_expression "(termline *)-(int)ptVar11" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (unary_expression "-(int)ptVar11" - (cast_expression "(int)ptVar11" ( (type_descriptor "int" primitive_type) ) identifier)))) ;) })) (for_statement "for (; 0 < (int)ptVar5; ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3)) {\n      iVar8 = 0;\n      ptVar11 = (termline *)delpos234(term->screen,iVar14);\n      resizeline(term,ptVar11,term->cols);\n      if (0 < term->cols) {\n        do {\n          copy_termchar(ptVar11,iVar8,&term->erase_char);\n          iVar8 = iVar8 + 1;\n        } while (iVar8 < term->cols);\n      }\n      ptVar10 = term->screen;\n      ptVar11->lattr = 0;\n      addpos234(ptVar10,ptVar11,iVar13);\n      iVar8 = (term->selstart).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selstart).x = 0;\n        }\n        (term->selstart).y = iVar16;\n      }\n      iVar8 = (term->selend).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selend).x = 0;\n        }\n        (term->selend).y = iVar16;\n      }\n    }" for ( ; (binary_expression "0 < (int)ptVar5" number_literal < (cast_expression "(int)ptVar5" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "ptVar5 = (termline *)((int)&ptVar5[-1].chars + 3)" identifier = (cast_expression "(termline *)((int)&ptVar5[-1].chars + 3)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar5[-1].chars + 3)" ( (binary_expression "(int)&ptVar5[-1].chars + 3" (cast_expression "(int)&ptVar5[-1].chars" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar5[-1].chars" & (field_expression "ptVar5[-1].chars" (subscript_expression "ptVar5[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ) (compound_statement "{\n      iVar8 = 0;\n      ptVar11 = (termline *)delpos234(term->screen,iVar14);\n      resizeline(term,ptVar11,term->cols);\n      if (0 < term->cols) {\n        do {\n          copy_termchar(ptVar11,iVar8,&term->erase_char);\n          iVar8 = iVar8 + 1;\n        } while (iVar8 < term->cols);\n      }\n      ptVar10 = term->screen;\n      ptVar11->lattr = 0;\n      addpos234(ptVar10,ptVar11,iVar13);\n      iVar8 = (term->selstart).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selstart).x = 0;\n        }\n        (term->selstart).y = iVar16;\n      }\n      iVar8 = (term->selend).y;\n      if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selend).x = 0;\n        }\n        (term->selend).y = iVar16;\n      }\n    }" { (expression_statement "iVar8 = 0;" (assignment_expression "iVar8 = 0" identifier = number_literal) ;) (expression_statement "ptVar11 = (termline *)delpos234(term->screen,iVar14);" (assignment_expression "ptVar11 = (termline *)delpos234(term->screen,iVar14)" identifier = (cast_expression "(termline *)delpos234(term->screen,iVar14)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "delpos234(term->screen,iVar14)" identifier (argument_list "(term->screen,iVar14)" ( (field_expression "term->screen" identifier -> field_identifier) , identifier ))))) ;) (expression_statement "resizeline(term,ptVar11,term->cols);" (call_expression "resizeline(term,ptVar11,term->cols)" identifier (argument_list "(term,ptVar11,term->cols)" ( identifier , identifier , (field_expression "term->cols" identifier -> field_identifier) ))) ;) (if_statement "if (0 < term->cols) {\n        do {\n          copy_termchar(ptVar11,iVar8,&term->erase_char);\n          iVar8 = iVar8 + 1;\n        } while (iVar8 < term->cols);\n      }" if (parenthesized_expression "(0 < term->cols)" ( (binary_expression "0 < term->cols" number_literal < (field_expression "term->cols" identifier -> field_identifier)) )) (compound_statement "{\n        do {\n          copy_termchar(ptVar11,iVar8,&term->erase_char);\n          iVar8 = iVar8 + 1;\n        } while (iVar8 < term->cols);\n      }" { (do_statement "do {\n          copy_termchar(ptVar11,iVar8,&term->erase_char);\n          iVar8 = iVar8 + 1;\n        } while (iVar8 < term->cols);" do (compound_statement "{\n          copy_termchar(ptVar11,iVar8,&term->erase_char);\n          iVar8 = iVar8 + 1;\n        }" { (expression_statement "copy_termchar(ptVar11,iVar8,&term->erase_char);" (call_expression "copy_termchar(ptVar11,iVar8,&term->erase_char)" identifier (argument_list "(ptVar11,iVar8,&term->erase_char)" ( identifier , identifier , (pointer_expression "&term->erase_char" & (field_expression "term->erase_char" identifier -> field_identifier)) ))) ;) (expression_statement "iVar8 = iVar8 + 1;" (assignment_expression "iVar8 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar8 < term->cols)" ( (binary_expression "iVar8 < term->cols" identifier < (field_expression "term->cols" identifier -> field_identifier)) )) ;) })) (expression_statement "ptVar10 = term->screen;" (assignment_expression "ptVar10 = term->screen" identifier = (field_expression "term->screen" identifier -> field_identifier)) ;) (expression_statement "ptVar11->lattr = 0;" (assignment_expression "ptVar11->lattr = 0" (field_expression "ptVar11->lattr" identifier -> field_identifier) = number_literal) ;) (expression_statement "addpos234(ptVar10,ptVar11,iVar13);" (call_expression "addpos234(ptVar10,ptVar11,iVar13)" identifier (argument_list "(ptVar10,ptVar11,iVar13)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar8 = (term->selstart).y;" (assignment_expression "iVar8 = (term->selstart).y" identifier = (field_expression "(term->selstart).y" (parenthesized_expression "(term->selstart)" ( (field_expression "term->selstart" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selstart).x = 0;\n        }\n        (term->selstart).y = iVar16;\n      }" if (parenthesized_expression "((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14))" ( (binary_expression "(iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)" (parenthesized_expression "(iVar13 <= iVar8)" ( (binary_expression "iVar13 <= iVar8" identifier <= identifier) )) && (parenthesized_expression "(iVar16 = iVar8 + 1, iVar8 <= iVar14)" ( (comma_expression "iVar16 = iVar8 + 1, iVar8 <= iVar14" (assignment_expression "iVar16 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) , (binary_expression "iVar8 <= iVar14" identifier <= identifier)) ))) )) (compound_statement "{\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selstart).x = 0;\n        }\n        (term->selstart).y = iVar16;\n      }" { (if_statement "if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selstart).x = 0;\n        }" if (parenthesized_expression "(iVar14 < iVar16)" ( (binary_expression "iVar14 < iVar16" identifier < identifier) )) (compound_statement "{\n          iVar16 = iVar14 + 1;\n          (term->selstart).x = 0;\n        }" { (expression_statement "iVar16 = iVar14 + 1;" (assignment_expression "iVar16 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "(term->selstart).x = 0;" (assignment_expression "(term->selstart).x = 0" (field_expression "(term->selstart).x" (parenthesized_expression "(term->selstart)" ( (field_expression "term->selstart" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (expression_statement "(term->selstart).y = iVar16;" (assignment_expression "(term->selstart).y = iVar16" (field_expression "(term->selstart).y" (parenthesized_expression "(term->selstart)" ( (field_expression "term->selstart" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) (expression_statement "iVar8 = (term->selend).y;" (assignment_expression "iVar8 = (term->selend).y" identifier = (field_expression "(term->selend).y" (parenthesized_expression "(term->selend)" ( (field_expression "term->selend" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)) {\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selend).x = 0;\n        }\n        (term->selend).y = iVar16;\n      }" if (parenthesized_expression "((iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14))" ( (binary_expression "(iVar13 <= iVar8) && (iVar16 = iVar8 + 1, iVar8 <= iVar14)" (parenthesized_expression "(iVar13 <= iVar8)" ( (binary_expression "iVar13 <= iVar8" identifier <= identifier) )) && (parenthesized_expression "(iVar16 = iVar8 + 1, iVar8 <= iVar14)" ( (comma_expression "iVar16 = iVar8 + 1, iVar8 <= iVar14" (assignment_expression "iVar16 = iVar8 + 1" identifier = (binary_expression "iVar8 + 1" identifier + number_literal)) , (binary_expression "iVar8 <= iVar14" identifier <= identifier)) ))) )) (compound_statement "{\n        if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selend).x = 0;\n        }\n        (term->selend).y = iVar16;\n      }" { (if_statement "if (iVar14 < iVar16) {\n          iVar16 = iVar14 + 1;\n          (term->selend).x = 0;\n        }" if (parenthesized_expression "(iVar14 < iVar16)" ( (binary_expression "iVar14 < iVar16" identifier < identifier) )) (compound_statement "{\n          iVar16 = iVar14 + 1;\n          (term->selend).x = 0;\n        }" { (expression_statement "iVar16 = iVar14 + 1;" (assignment_expression "iVar16 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (expression_statement "(term->selend).x = 0;" (assignment_expression "(term->selend).x = 0" (field_expression "(term->selend).x" (parenthesized_expression "(term->selend)" ( (field_expression "term->selend" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) })) (expression_statement "(term->selend).y = iVar16;" (assignment_expression "(term->selend).y = iVar16" (field_expression "(term->selend).y" (parenthesized_expression "(term->selend)" ( (field_expression "term->selend" identifier -> field_identifier) )) . field_identifier) = identifier) ;) })) })) }) (else_clause "else {\n    iVar8 = *(int *)(pcVar20 + 0x7f84c);\n    if ((int)ptVar5 <= (int)ptVar11) {\n      ptVar11 = ptVar5;\n    }\n    for (; 0 < (int)ptVar11; ptVar11 = (termline *)((int)&ptVar11[-1].chars + 3)) {\n      ptVar5 = (termline *)delpos234(term->screen,iVar13);\n      iVar16 = iVar13;\n      if (puVar22 == (undefined *)0x0) {\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (0 < term->cols) goto LAB_00092364;\n        ptVar10 = term->screen;\n        ptVar5->lattr = 0;\n        addpos234(ptVar10,ptVar5,iVar14);\n      }\n      else {\n        if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar16 = -term->savelines;\n      }\nLAB_000923b8:\n      if (term->selstate != ADDRTYPE_UNSPEC) {\n        iVar18 = (term->selstart).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selend).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selanchor).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar8 = *(int *)(pcVar20 + 0x7f84c);\n    if ((int)ptVar5 <= (int)ptVar11) {\n      ptVar11 = ptVar5;\n    }\n    for (; 0 < (int)ptVar11; ptVar11 = (termline *)((int)&ptVar11[-1].chars + 3)) {\n      ptVar5 = (termline *)delpos234(term->screen,iVar13);\n      iVar16 = iVar13;\n      if (puVar22 == (undefined *)0x0) {\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (0 < term->cols) goto LAB_00092364;\n        ptVar10 = term->screen;\n        ptVar5->lattr = 0;\n        addpos234(ptVar10,ptVar5,iVar14);\n      }\n      else {\n        if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar16 = -term->savelines;\n      }\nLAB_000923b8:\n      if (term->selstate != ADDRTYPE_UNSPEC) {\n        iVar18 = (term->selstart).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selend).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selanchor).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar8 = *(int *)(pcVar20 + 0x7f84c);" (assignment_expression "iVar8 = *(int *)(pcVar20 + 0x7f84c)" identifier = (pointer_expression "*(int *)(pcVar20 + 0x7f84c)" * (cast_expression "(int *)(pcVar20 + 0x7f84c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar20 + 0x7f84c)" ( (binary_expression "pcVar20 + 0x7f84c" identifier + number_literal) ))))) ;) (if_statement "if ((int)ptVar5 <= (int)ptVar11) {\n      ptVar11 = ptVar5;\n    }" if (parenthesized_expression "((int)ptVar5 <= (int)ptVar11)" ( (binary_expression "(int)ptVar5 <= (int)ptVar11" (cast_expression "(int)ptVar5" ( (type_descriptor "int" primitive_type) ) identifier) <= (cast_expression "(int)ptVar11" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      ptVar11 = ptVar5;\n    }" { (expression_statement "ptVar11 = ptVar5;" (assignment_expression "ptVar11 = ptVar5" identifier = identifier) ;) })) (for_statement "for (; 0 < (int)ptVar11; ptVar11 = (termline *)((int)&ptVar11[-1].chars + 3)) {\n      ptVar5 = (termline *)delpos234(term->screen,iVar13);\n      iVar16 = iVar13;\n      if (puVar22 == (undefined *)0x0) {\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (0 < term->cols) goto LAB_00092364;\n        ptVar10 = term->screen;\n        ptVar5->lattr = 0;\n        addpos234(ptVar10,ptVar5,iVar14);\n      }\n      else {\n        if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar16 = -term->savelines;\n      }\nLAB_000923b8:\n      if (term->selstate != ADDRTYPE_UNSPEC) {\n        iVar18 = (term->selstart).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selend).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selanchor).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "0 < (int)ptVar11" number_literal < (cast_expression "(int)ptVar11" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "ptVar11 = (termline *)((int)&ptVar11[-1].chars + 3)" identifier = (cast_expression "(termline *)((int)&ptVar11[-1].chars + 3)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar11[-1].chars + 3)" ( (binary_expression "(int)&ptVar11[-1].chars + 3" (cast_expression "(int)&ptVar11[-1].chars" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar11[-1].chars" & (field_expression "ptVar11[-1].chars" (subscript_expression "ptVar11[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ) (compound_statement "{\n      ptVar5 = (termline *)delpos234(term->screen,iVar13);\n      iVar16 = iVar13;\n      if (puVar22 == (undefined *)0x0) {\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (0 < term->cols) goto LAB_00092364;\n        ptVar10 = term->screen;\n        ptVar5->lattr = 0;\n        addpos234(ptVar10,ptVar5,iVar14);\n      }\n      else {\n        if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar16 = -term->savelines;\n      }\nLAB_000923b8:\n      if (term->selstate != ADDRTYPE_UNSPEC) {\n        iVar18 = (term->selstart).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selend).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selanchor).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }\n      }\n    }" { (expression_statement "ptVar5 = (termline *)delpos234(term->screen,iVar13);" (assignment_expression "ptVar5 = (termline *)delpos234(term->screen,iVar13)" identifier = (cast_expression "(termline *)delpos234(term->screen,iVar13)" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "delpos234(term->screen,iVar13)" identifier (argument_list "(term->screen,iVar13)" ( (field_expression "term->screen" identifier -> field_identifier) , identifier ))))) ;) (expression_statement "iVar16 = iVar13;" (assignment_expression "iVar16 = iVar13" identifier = identifier) ;) (if_statement "if (puVar22 == (undefined *)0x0) {\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (0 < term->cols) goto LAB_00092364;\n        ptVar10 = term->screen;\n        ptVar5->lattr = 0;\n        addpos234(ptVar10,ptVar5,iVar14);\n      }\n      else {\n        if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar16 = -term->savelines;\n      }" if (parenthesized_expression "(puVar22 == (undefined *)0x0)" ( (binary_expression "puVar22 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (0 < term->cols) goto LAB_00092364;\n        ptVar10 = term->screen;\n        ptVar5->lattr = 0;\n        addpos234(ptVar10,ptVar5,iVar14);\n      }" { (expression_statement "(*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);" (call_expression "(*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols)" (parenthesized_expression "(*(code *)(iVar8 + 0xb64))" ( (pointer_expression "*(code *)(iVar8 + 0xb64)" * (cast_expression "(code *)(iVar8 + 0xb64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xb64)" ( (binary_expression "iVar8 + 0xb64" identifier + number_literal) )))) )) (argument_list "(term,ptVar5,term->cols)" ( identifier , identifier , (field_expression "term->cols" identifier -> field_identifier) ))) ;) (if_statement "if (0 < term->cols) goto LAB_00092364;" if (parenthesized_expression "(0 < term->cols)" ( (binary_expression "0 < term->cols" number_literal < (field_expression "term->cols" identifier -> field_identifier)) )) (goto_statement "goto LAB_00092364;" goto statement_identifier ;)) (expression_statement "ptVar10 = term->screen;" (assignment_expression "ptVar10 = term->screen" identifier = (field_expression "term->screen" identifier -> field_identifier)) ;) (expression_statement "ptVar5->lattr = 0;" (assignment_expression "ptVar5->lattr = 0" (field_expression "ptVar5->lattr" identifier -> field_identifier) = number_literal) ;) (expression_statement "addpos234(ptVar10,ptVar5,iVar14);" (call_expression "addpos234(ptVar10,ptVar5,iVar14)" identifier (argument_list "(ptVar10,ptVar5,iVar14)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar16 = -term->savelines;\n      }" else (compound_statement "{\n        if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }\n        (*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);\n        if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar16 = -term->savelines;\n      }" { (if_statement "if (0 < term->savelines) {\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }" if (parenthesized_expression "(0 < term->savelines)" ( (binary_expression "0 < term->savelines" number_literal < (field_expression "term->savelines" identifier -> field_identifier)) )) (compound_statement "{\n          iVar18 = count234(term->scrollback);\n          if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }\n          ptVar10 = term->scrollback;\n          puVar6 = compressline(ptVar5);\n          addpos234(ptVar10,puVar6,iVar18);\n          iVar18 = term->disptop;\n          if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }\n        }" { (expression_statement "iVar18 = count234(term->scrollback);" (assignment_expression "iVar18 = count234(term->scrollback)" identifier = (call_expression "count234(term->scrollback)" identifier (argument_list "(term->scrollback)" ( (field_expression "term->scrollback" identifier -> field_identifier) )))) ;) (if_statement "if (term->savelines == iVar18) {\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }\n          else {\n            term->tempsblines = term->tempsblines + 1;\n          }" if (parenthesized_expression "(term->savelines == iVar18)" ( (binary_expression "term->savelines == iVar18" (field_expression "term->savelines" identifier -> field_identifier) == identifier) )) (compound_statement "{\n            iVar18 = iVar18 + -1;\n            pvVar7 = delpos234(term->scrollback,0);\n            (**(code **)(pcVar20 + 0x7f064))(pvVar7);\n          }" { (expression_statement "iVar18 = iVar18 + -1;" (assignment_expression "iVar18 = iVar18 + -1" identifier = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) (expression_statement "pvVar7 = delpos234(term->scrollback,0);" (assignment_expression "pvVar7 = delpos234(term->scrollback,0)" identifier = (call_expression "delpos234(term->scrollback,0)" identifier (argument_list "(term->scrollback,0)" ( (field_expression "term->scrollback" identifier -> field_identifier) , number_literal )))) ;) (expression_statement "(**(code **)(pcVar20 + 0x7f064))(pvVar7);" (call_expression "(**(code **)(pcVar20 + 0x7f064))(pvVar7)" (parenthesized_expression "(**(code **)(pcVar20 + 0x7f064))" ( (pointer_expression "**(code **)(pcVar20 + 0x7f064)" * (pointer_expression "*(code **)(pcVar20 + 0x7f064)" * (cast_expression "(code **)(pcVar20 + 0x7f064)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar20 + 0x7f064)" ( (binary_expression "pcVar20 + 0x7f064" identifier + number_literal) ))))) )) (argument_list "(pvVar7)" ( identifier ))) ;) }) (else_clause "else {\n            term->tempsblines = term->tempsblines + 1;\n          }" else (compound_statement "{\n            term->tempsblines = term->tempsblines + 1;\n          }" { (expression_statement "term->tempsblines = term->tempsblines + 1;" (assignment_expression "term->tempsblines = term->tempsblines + 1" (field_expression "term->tempsblines" identifier -> field_identifier) = (binary_expression "term->tempsblines + 1" (field_expression "term->tempsblines" identifier -> field_identifier) + number_literal)) ;) }))) (expression_statement "ptVar10 = term->scrollback;" (assignment_expression "ptVar10 = term->scrollback" identifier = (field_expression "term->scrollback" identifier -> field_identifier)) ;) (expression_statement "puVar6 = compressline(ptVar5);" (assignment_expression "puVar6 = compressline(ptVar5)" identifier = (call_expression "compressline(ptVar5)" identifier (argument_list "(ptVar5)" ( identifier )))) ;) (expression_statement "addpos234(ptVar10,puVar6,iVar18);" (call_expression "addpos234(ptVar10,puVar6,iVar18)" identifier (argument_list "(ptVar10,puVar6,iVar18)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar18 = term->disptop;" (assignment_expression "iVar18 = term->disptop" identifier = (field_expression "term->disptop" identifier -> field_identifier)) ;) (if_statement "if ((-term->savelines < iVar18) && (iVar18 < 0)) {\n            term->disptop = iVar18 + -1;\n          }" if (parenthesized_expression "((-term->savelines < iVar18) && (iVar18 < 0))" ( (binary_expression "(-term->savelines < iVar18) && (iVar18 < 0)" (parenthesized_expression "(-term->savelines < iVar18)" ( (binary_expression "-term->savelines < iVar18" (unary_expression "-term->savelines" - (field_expression "term->savelines" identifier -> field_identifier)) < identifier) )) && (parenthesized_expression "(iVar18 < 0)" ( (binary_expression "iVar18 < 0" identifier < number_literal) ))) )) (compound_statement "{\n            term->disptop = iVar18 + -1;\n          }" { (expression_statement "term->disptop = iVar18 + -1;" (assignment_expression "term->disptop = iVar18 + -1" (field_expression "term->disptop" identifier -> field_identifier) = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) })) })) (expression_statement "(*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols);" (call_expression "(*(code *)(iVar8 + 0xb64))(term,ptVar5,term->cols)" (parenthesized_expression "(*(code *)(iVar8 + 0xb64))" ( (pointer_expression "*(code *)(iVar8 + 0xb64)" * (cast_expression "(code *)(iVar8 + 0xb64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar8 + 0xb64)" ( (binary_expression "iVar8 + 0xb64" identifier + number_literal) )))) )) (argument_list "(term,ptVar5,term->cols)" ( identifier , identifier , (field_expression "term->cols" identifier -> field_identifier) ))) ;) (if_statement "if (term->cols < 1) {\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }\n        else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }" if (parenthesized_expression "(term->cols < 1)" ( (binary_expression "term->cols < 1" (field_expression "term->cols" identifier -> field_identifier) < number_literal) )) (compound_statement "{\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n        }" { (expression_statement "ptVar10 = term->screen;" (assignment_expression "ptVar10 = term->screen" identifier = (field_expression "term->screen" identifier -> field_identifier)) ;) (expression_statement "ptVar5->lattr = 0;" (assignment_expression "ptVar5->lattr = 0" (field_expression "ptVar5->lattr" identifier -> field_identifier) = number_literal) ;) (expression_statement "addpos234(ptVar10,ptVar5,iVar14);" (call_expression "addpos234(ptVar10,ptVar5,iVar14)" identifier (argument_list "(ptVar10,ptVar5,iVar14)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }" else (compound_statement "{\nLAB_00092364:\n          iVar18 = 0;\n          do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);\n          ptVar10 = term->screen;\n          ptVar5->lattr = 0;\n          addpos234(ptVar10,ptVar5,iVar14);\n          if (puVar22 == (undefined *)0x0) goto LAB_000923b8;\n        }" { (labeled_statement "LAB_00092364:\n          iVar18 = 0;" statement_identifier : (expression_statement "iVar18 = 0;" (assignment_expression "iVar18 = 0" identifier = number_literal) ;)) (do_statement "do {\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          } while (iVar18 < term->cols);" do (compound_statement "{\n            copy_termchar(ptVar5,iVar18,&term->erase_char);\n            iVar18 = iVar18 + 1;\n          }" { (expression_statement "copy_termchar(ptVar5,iVar18,&term->erase_char);" (call_expression "copy_termchar(ptVar5,iVar18,&term->erase_char)" identifier (argument_list "(ptVar5,iVar18,&term->erase_char)" ( identifier , identifier , (pointer_expression "&term->erase_char" & (field_expression "term->erase_char" identifier -> field_identifier)) ))) ;) (expression_statement "iVar18 = iVar18 + 1;" (assignment_expression "iVar18 = iVar18 + 1" identifier = (binary_expression "iVar18 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar18 < term->cols)" ( (binary_expression "iVar18 < term->cols" identifier < (field_expression "term->cols" identifier -> field_identifier)) )) ;) (expression_statement "ptVar10 = term->screen;" (assignment_expression "ptVar10 = term->screen" identifier = (field_expression "term->screen" identifier -> field_identifier)) ;) (expression_statement "ptVar5->lattr = 0;" (assignment_expression "ptVar5->lattr = 0" (field_expression "ptVar5->lattr" identifier -> field_identifier) = number_literal) ;) (expression_statement "addpos234(ptVar10,ptVar5,iVar14);" (call_expression "addpos234(ptVar10,ptVar5,iVar14)" identifier (argument_list "(ptVar10,ptVar5,iVar14)" ( identifier , identifier , identifier ))) ;) (if_statement "if (puVar22 == (undefined *)0x0) goto LAB_000923b8;" if (parenthesized_expression "(puVar22 == (undefined *)0x0)" ( (binary_expression "puVar22 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000923b8;" goto statement_identifier ;)) }))) (expression_statement "iVar16 = -term->savelines;" (assignment_expression "iVar16 = -term->savelines" identifier = (unary_expression "-term->savelines" - (field_expression "term->savelines" identifier -> field_identifier))) ;) }))) (labeled_statement "LAB_000923b8:\n      if (term->selstate != ADDRTYPE_UNSPEC) {\n        iVar18 = (term->selstart).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selend).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selanchor).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }\n      }" statement_identifier : (if_statement "if (term->selstate != ADDRTYPE_UNSPEC) {\n        iVar18 = (term->selstart).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selend).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selanchor).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }\n      }" if (parenthesized_expression "(term->selstate != ADDRTYPE_UNSPEC)" ( (binary_expression "term->selstate != ADDRTYPE_UNSPEC" (field_expression "term->selstate" identifier -> field_identifier) != identifier) )) (compound_statement "{\n        iVar18 = (term->selstart).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selend).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }\n        iVar18 = (term->selanchor).y;\n        if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }\n      }" { (expression_statement "iVar18 = (term->selstart).y;" (assignment_expression "iVar18 = (term->selstart).y" identifier = (field_expression "(term->selstart).y" (parenthesized_expression "(term->selstart)" ( (field_expression "term->selstart" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }" if (parenthesized_expression "((iVar16 <= iVar18) && (iVar18 <= iVar14))" ( (binary_expression "(iVar16 <= iVar18) && (iVar18 <= iVar14)" (parenthesized_expression "(iVar16 <= iVar18)" ( (binary_expression "iVar16 <= iVar18" identifier <= identifier) )) && (parenthesized_expression "(iVar18 <= iVar14)" ( (binary_expression "iVar18 <= iVar14" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }\n        }" { (if_statement "if (iVar18 + -1 < iVar16) {\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }\n          else {\n            (term->selstart).y = iVar18 + -1;\n          }" if (parenthesized_expression "(iVar18 + -1 < iVar16)" ( (binary_expression "iVar18 + -1 < iVar16" (binary_expression "iVar18 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            (term->selstart).y = iVar16;\n            (term->selstart).x = 0;\n          }" { (expression_statement "(term->selstart).y = iVar16;" (assignment_expression "(term->selstart).y = iVar16" (field_expression "(term->selstart).y" (parenthesized_expression "(term->selstart)" ( (field_expression "term->selstart" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(term->selstart).x = 0;" (assignment_expression "(term->selstart).x = 0" (field_expression "(term->selstart).x" (parenthesized_expression "(term->selstart)" ( (field_expression "term->selstart" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) }) (else_clause "else {\n            (term->selstart).y = iVar18 + -1;\n          }" else (compound_statement "{\n            (term->selstart).y = iVar18 + -1;\n          }" { (expression_statement "(term->selstart).y = iVar18 + -1;" (assignment_expression "(term->selstart).y = iVar18 + -1" (field_expression "(term->selstart).y" (parenthesized_expression "(term->selstart)" ( (field_expression "term->selstart" identifier -> field_identifier) )) . field_identifier) = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar18 = (term->selend).y;" (assignment_expression "iVar18 = (term->selend).y" identifier = (field_expression "(term->selend).y" (parenthesized_expression "(term->selend)" ( (field_expression "term->selend" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }" if (parenthesized_expression "((iVar16 <= iVar18) && (iVar18 <= iVar14))" ( (binary_expression "(iVar16 <= iVar18) && (iVar18 <= iVar14)" (parenthesized_expression "(iVar16 <= iVar18)" ( (binary_expression "iVar16 <= iVar18" identifier <= identifier) )) && (parenthesized_expression "(iVar18 <= iVar14)" ( (binary_expression "iVar18 <= iVar14" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }\n        }" { (if_statement "if (iVar18 + -1 < iVar16) {\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }\n          else {\n            (term->selend).y = iVar18 + -1;\n          }" if (parenthesized_expression "(iVar18 + -1 < iVar16)" ( (binary_expression "iVar18 + -1 < iVar16" (binary_expression "iVar18 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            (term->selend).y = iVar16;\n            (term->selend).x = 0;\n          }" { (expression_statement "(term->selend).y = iVar16;" (assignment_expression "(term->selend).y = iVar16" (field_expression "(term->selend).y" (parenthesized_expression "(term->selend)" ( (field_expression "term->selend" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(term->selend).x = 0;" (assignment_expression "(term->selend).x = 0" (field_expression "(term->selend).x" (parenthesized_expression "(term->selend)" ( (field_expression "term->selend" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) }) (else_clause "else {\n            (term->selend).y = iVar18 + -1;\n          }" else (compound_statement "{\n            (term->selend).y = iVar18 + -1;\n          }" { (expression_statement "(term->selend).y = iVar18 + -1;" (assignment_expression "(term->selend).y = iVar18 + -1" (field_expression "(term->selend).y" (parenthesized_expression "(term->selend)" ( (field_expression "term->selend" identifier -> field_identifier) )) . field_identifier) = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar18 = (term->selanchor).y;" (assignment_expression "iVar18 = (term->selanchor).y" identifier = (field_expression "(term->selanchor).y" (parenthesized_expression "(term->selanchor)" ( (field_expression "term->selanchor" identifier -> field_identifier) )) . field_identifier)) ;) (if_statement "if ((iVar16 <= iVar18) && (iVar18 <= iVar14)) {\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }" if (parenthesized_expression "((iVar16 <= iVar18) && (iVar18 <= iVar14))" ( (binary_expression "(iVar16 <= iVar18) && (iVar18 <= iVar14)" (parenthesized_expression "(iVar16 <= iVar18)" ( (binary_expression "iVar16 <= iVar18" identifier <= identifier) )) && (parenthesized_expression "(iVar18 <= iVar14)" ( (binary_expression "iVar18 <= iVar14" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }\n        }" { (if_statement "if (iVar18 + -1 < iVar16) {\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }\n          else {\n            (term->selanchor).y = iVar18 + -1;\n          }" if (parenthesized_expression "(iVar18 + -1 < iVar16)" ( (binary_expression "iVar18 + -1 < iVar16" (binary_expression "iVar18 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            (term->selanchor).y = iVar16;\n            (term->selanchor).x = 0;\n          }" { (expression_statement "(term->selanchor).y = iVar16;" (assignment_expression "(term->selanchor).y = iVar16" (field_expression "(term->selanchor).y" (parenthesized_expression "(term->selanchor)" ( (field_expression "term->selanchor" identifier -> field_identifier) )) . field_identifier) = identifier) ;) (expression_statement "(term->selanchor).x = 0;" (assignment_expression "(term->selanchor).x = 0" (field_expression "(term->selanchor).x" (parenthesized_expression "(term->selanchor)" ( (field_expression "term->selanchor" identifier -> field_identifier) )) . field_identifier) = number_literal) ;) }) (else_clause "else {\n            (term->selanchor).y = iVar18 + -1;\n          }" else (compound_statement "{\n            (term->selanchor).y = iVar18 + -1;\n          }" { (expression_statement "(term->selanchor).y = iVar18 + -1;" (assignment_expression "(term->selanchor).y = iVar18 + -1" (field_expression "(term->selanchor).y" (parenthesized_expression "(term->selanchor)" ( (field_expression "term->selanchor" identifier -> field_identifier) )) . field_identifier) = (binary_expression "iVar18 + -1" identifier + number_literal)) ;) }))) })) }))) })) }))) (return_statement "return;" return ;) })))
(translation_unit "void FUN_00091cb8(int *param_1,uint param_2,int param_3,code *param_4)\n\n{\n  bool bVar1;\n  undefined2 *puVar2;\n  int iVar3;\n  ushort *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  int iVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined4 uStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  int iStack_84;\n  int iStack_7c;\n  uint uStack_78;\n  int iStack_74;\n  int iStack_70;\n  int iStack_6c;\n  uint uStack_68;\n  code *pcStack_64;\n  int local_40;\n  int local_3c;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_00112630;\n  local_3c = param_1[1];\n  local_2c = *(int *)PTR___stack_chk_guard_00112630;\n  pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);\n  iVar12 = 0;\n  iVar10 = 0;\n  iVar9 = 0;\n  uVar7 = param_2 - 1;\n  local_30 = 0;\n  FUN_0008fe74(param_1,0);\n  iVar3 = 0;\n  if (0 < (int)param_2) {\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }\n  uVar8 = uVar7;\n  if (iVar3 == 0) {\n    param_1[1] = local_3c;\n  }\n  else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }\n  if (local_2c == *(int *)puVar20) {\n    return;\n  }\nLAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();\nLAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);\nLAB_000920bc:\n  pcVar18 = FUN_000920e0;\n  puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);\n  puVar19 = PTR___assert_fail_00111f50;\n  (*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);\n  puVar20 = puVar19 + 0x871d0;\n  piVar13 = *(int **)(puVar19 + 0x80550);\n  uVar7 = *(uint *)(puVar4 + 2);\n  uStack_90 = 0;\n  iStack_8c = 0;\n  uStack_88 = 0;\n  iStack_84 = *piVar13;\n  iStack_7c = param_3;\n  uStack_78 = uVar8;\n  iStack_74 = iVar9;\n  iStack_70 = iVar10;\n  iStack_6c = iVar12;\n  uStack_68 = param_2;\n  pcStack_64 = pcVar18;\n  for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4);\n  iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));\n  iVar3 = 1;\n  iVar10 = iStack_8c;\n  (**(code **)(puVar19 + 0x7f310))(uStack_90);\n  if (iStack_84 == *piVar13) {\n    return;\n  }\n  pcVar18 = *(code **)(puVar19 + 0x801e8);\n  iVar12 = iStack_84;\n  (*pcVar18)();\n  if (iVar10 == 0) {\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }\n  iVar14 = iVar14 + 1;\n  if (iVar9 < 0) {\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }\n  else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_00091cb8(int *param_1,uint param_2,int param_3,code *param_4)\n\n{\n  bool bVar1;\n  undefined2 *puVar2;\n  int iVar3;\n  ushort *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  int iVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined4 uStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  int iStack_84;\n  int iStack_7c;\n  uint uStack_78;\n  int iStack_74;\n  int iStack_70;\n  int iStack_6c;\n  uint uStack_68;\n  code *pcStack_64;\n  int local_40;\n  int local_3c;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_00112630;\n  local_3c = param_1[1];\n  local_2c = *(int *)PTR___stack_chk_guard_00112630;\n  pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);\n  iVar12 = 0;\n  iVar10 = 0;\n  iVar9 = 0;\n  uVar7 = param_2 - 1;\n  local_30 = 0;\n  FUN_0008fe74(param_1,0);\n  iVar3 = 0;\n  if (0 < (int)param_2) {\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }\n  uVar8 = uVar7;\n  if (iVar3 == 0) {\n    param_1[1] = local_3c;\n  }\n  else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }\n  if (local_2c == *(int *)puVar20) {\n    return;\n  }\nLAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();\nLAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);\nLAB_000920bc:\n  pcVar18 = FUN_000920e0;\n  puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);\n  puVar19 = PTR___assert_fail_00111f50;\n  (*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);\n  puVar20 = puVar19 + 0x871d0;\n  piVar13 = *(int **)(puVar19 + 0x80550);\n  uVar7 = *(uint *)(puVar4 + 2);\n  uStack_90 = 0;\n  iStack_8c = 0;\n  uStack_88 = 0;\n  iStack_84 = *piVar13;\n  iStack_7c = param_3;\n  uStack_78 = uVar8;\n  iStack_74 = iVar9;\n  iStack_70 = iVar10;\n  iStack_6c = iVar12;\n  uStack_68 = param_2;\n  pcStack_64 = pcVar18;\n  for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4);\n  iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));\n  iVar3 = 1;\n  iVar10 = iStack_8c;\n  (**(code **)(puVar19 + 0x7f310))(uStack_90);\n  if (iStack_84 == *piVar13) {\n    return;\n  }\n  pcVar18 = *(code **)(puVar19 + 0x801e8);\n  iVar12 = iStack_84;\n  (*pcVar18)();\n  if (iVar10 == 0) {\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }\n  iVar14 = iVar14 + 1;\n  if (iVar9 < 0) {\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }\n  else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_00091cb8(int *param_1,uint param_2,int param_3,code *param_4)" identifier (parameter_list "(int *param_1,uint param_2,int param_3,code *param_4)" ( (parameter_declaration "int *param_1" primitive_type (pointer_declarator "*param_1" * identifier)) , (parameter_declaration "uint param_2" type_identifier identifier) , (parameter_declaration "int param_3" primitive_type identifier) , (parameter_declaration "code *param_4" type_identifier (pointer_declarator "*param_4" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined2 *puVar2;\n  int iVar3;\n  ushort *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  int iVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined4 uStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  int iStack_84;\n  int iStack_7c;\n  uint uStack_78;\n  int iStack_74;\n  int iStack_70;\n  int iStack_6c;\n  uint uStack_68;\n  code *pcStack_64;\n  int local_40;\n  int local_3c;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_00112630;\n  local_3c = param_1[1];\n  local_2c = *(int *)PTR___stack_chk_guard_00112630;\n  pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);\n  iVar12 = 0;\n  iVar10 = 0;\n  iVar9 = 0;\n  uVar7 = param_2 - 1;\n  local_30 = 0;\n  FUN_0008fe74(param_1,0);\n  iVar3 = 0;\n  if (0 < (int)param_2) {\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }\n  uVar8 = uVar7;\n  if (iVar3 == 0) {\n    param_1[1] = local_3c;\n  }\n  else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }\n  if (local_2c == *(int *)puVar20) {\n    return;\n  }\nLAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();\nLAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);\nLAB_000920bc:\n  pcVar18 = FUN_000920e0;\n  puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);\n  puVar19 = PTR___assert_fail_00111f50;\n  (*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);\n  puVar20 = puVar19 + 0x871d0;\n  piVar13 = *(int **)(puVar19 + 0x80550);\n  uVar7 = *(uint *)(puVar4 + 2);\n  uStack_90 = 0;\n  iStack_8c = 0;\n  uStack_88 = 0;\n  iStack_84 = *piVar13;\n  iStack_7c = param_3;\n  uStack_78 = uVar8;\n  iStack_74 = iVar9;\n  iStack_70 = iVar10;\n  iStack_6c = iVar12;\n  uStack_68 = param_2;\n  pcStack_64 = pcVar18;\n  for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4);\n  iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));\n  iVar3 = 1;\n  iVar10 = iStack_8c;\n  (**(code **)(puVar19 + 0x7f310))(uStack_90);\n  if (iStack_84 == *piVar13) {\n    return;\n  }\n  pcVar18 = *(code **)(puVar19 + 0x801e8);\n  iVar12 = iStack_84;\n  (*pcVar18)();\n  if (iVar10 == 0) {\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }\n  iVar14 = iVar14 + 1;\n  if (iVar9 < 0) {\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }\n  else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" { (declaration "bool bVar1;" primitive_type identifier ;) (declaration "undefined2 *puVar2;" type_identifier (pointer_declarator "*puVar2" * identifier) ;) (declaration "int iVar3;" primitive_type identifier ;) (declaration "ushort *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "undefined4 uVar5;" type_identifier identifier ;) (declaration "int iVar6;" primitive_type identifier ;) (declaration "uint uVar7;" type_identifier identifier ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "int iVar10;" primitive_type identifier ;) (declaration "char cVar11;" primitive_type identifier ;) (declaration "int iVar12;" primitive_type identifier ;) (declaration "int *piVar13;" primitive_type (pointer_declarator "*piVar13" * identifier) ;) (declaration "int iVar14;" primitive_type identifier ;) (declaration "int iVar15;" primitive_type identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "undefined4 uVar17;" type_identifier identifier ;) (declaration "code *pcVar18;" type_identifier (pointer_declarator "*pcVar18" * identifier) ;) (declaration "undefined *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "undefined *puVar20;" type_identifier (pointer_declarator "*puVar20" * identifier) ;) (declaration "undefined4 uStack_90;" type_identifier identifier ;) (declaration "int iStack_8c;" primitive_type identifier ;) (declaration "undefined4 uStack_88;" type_identifier identifier ;) (declaration "int iStack_84;" primitive_type identifier ;) (declaration "int iStack_7c;" primitive_type identifier ;) (declaration "uint uStack_78;" type_identifier identifier ;) (declaration "int iStack_74;" primitive_type identifier ;) (declaration "int iStack_70;" primitive_type identifier ;) (declaration "int iStack_6c;" primitive_type identifier ;) (declaration "uint uStack_68;" type_identifier identifier ;) (declaration "code *pcStack_64;" type_identifier (pointer_declarator "*pcStack_64" * identifier) ;) (declaration "int local_40;" primitive_type identifier ;) (declaration "int local_3c;" primitive_type identifier ;) (declaration "undefined4 local_30;" type_identifier identifier ;) (declaration "int local_2c;" primitive_type identifier ;) (expression_statement "puVar20 = PTR___stack_chk_guard_00112630;" (assignment_expression "puVar20 = PTR___stack_chk_guard_00112630" identifier = identifier) ;) (expression_statement "local_3c = param_1[1];" (assignment_expression "local_3c = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00112630;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00112630" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_00112630" * (cast_expression "(int *)PTR___stack_chk_guard_00112630" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);" (assignment_expression "pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c)" identifier = (cast_expression "(code *)(PTR_LAB_00111ad8 + -0x18c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_LAB_00111ad8 + -0x18c)" ( (binary_expression "PTR_LAB_00111ad8 + -0x18c" identifier + number_literal) )))) ;) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "uVar7 = param_2 - 1;" (assignment_expression "uVar7 = param_2 - 1" identifier = (binary_expression "param_2 - 1" identifier - number_literal)) ;) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" identifier = number_literal) ;) (expression_statement "FUN_0008fe74(param_1,0);" (call_expression "FUN_0008fe74(param_1,0)" identifier (argument_list "(param_1,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) (if_statement "if (0 < (int)param_2) {\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }" if (parenthesized_expression "(0 < (int)param_2)" ( (binary_expression "0 < (int)param_2" number_literal < (cast_expression "(int)param_2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }" { (do_statement "do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);" do (compound_statement "{\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    }" { (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) (expression_statement "iVar15 = param_1[1];" (assignment_expression "iVar15 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*param_4)(param_1,param_3,&local_30);" (call_expression "(*param_4)(param_1,param_3,&local_30)" (parenthesized_expression "(*param_4)" ( (pointer_expression "*param_4" * identifier) )) (argument_list "(param_1,param_3,&local_30)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "param_3 = param_3 + 0xc;" (assignment_expression "param_3 = param_3 + 0xc" identifier = (binary_expression "param_3 + 0xc" identifier + number_literal)) ;) (expression_statement "iVar14 = param_1[1];" (assignment_expression "iVar14 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (if_statement "if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }" if (parenthesized_expression "(iVar14 - iVar15 == iVar9)" ( (binary_expression "iVar14 - iVar15 == iVar9" (binary_expression "iVar14 - iVar15" identifier - identifier) == identifier) )) (compound_statement "{\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }" { (expression_statement "iVar6 = *param_1;" (assignment_expression "iVar6 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);" (assignment_expression "iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9)" identifier = (call_expression "(*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9)" (parenthesized_expression "(*(code *)PTR_memcmp_00112430)" ( (pointer_expression "*(code *)PTR_memcmp_00112430" * (cast_expression "(code *)PTR_memcmp_00112430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6 + iVar10,iVar6 + iVar15,iVar9)" ( (binary_expression "iVar6 + iVar10" identifier + identifier) , (binary_expression "iVar6 + iVar15" identifier + identifier) , identifier )))) ;) (if_statement "if (iVar16 != 0) goto LAB_00091d8c;" if (parenthesized_expression "(iVar16 != 0)" ( (binary_expression "iVar16 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00091d8c;" goto statement_identifier ;)) (if_statement "if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }" if (parenthesized_expression "(iVar9 < 2)" ( (binary_expression "iVar9 < 2" identifier < number_literal) )) (compound_statement "{\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }" { (if_statement "if (iVar12 != 0) goto LAB_00091fbc;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00091fbc;" goto statement_identifier ;)) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" identifier = number_literal) ;) (goto_statement "goto LAB_00091d90;" goto statement_identifier ;) })) (expression_statement "param_2 = iVar3 - 1;" (assignment_expression "param_2 = iVar3 - 1" identifier = (binary_expression "iVar3 - 1" identifier - number_literal)) ;) (if_statement "if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }" { (if_statement "if (param_2 == 0) goto LAB_00091e58;" if (parenthesized_expression "(param_2 == 0)" ( (binary_expression "param_2 == 0" identifier == number_literal) )) (goto_statement "goto LAB_00091e58;" goto statement_identifier ;)) (labeled_statement "LAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);" statement_identifier : (expression_statement "(*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);" (call_expression "(*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9)" (parenthesized_expression "(*(code *)PTR_memmove_00111fe8)" ( (pointer_expression "*(code *)PTR_memmove_00111fe8" * (cast_expression "(code *)PTR_memmove_00111fe8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9)" ( (binary_expression "iVar6 + iVar10 + 1" (binary_expression "iVar6 + iVar10" identifier + identifier) + number_literal) , (binary_expression "iVar6 + iVar10" identifier + identifier) , identifier ))) ;)) (expression_statement "param_2 = param_2 - 1;" (assignment_expression "param_2 = param_2 - 1" identifier = (binary_expression "param_2 - 1" identifier - number_literal)) ;) (expression_statement "param_1[1] = iVar9 + iVar10 + 1;" (assignment_expression "param_1[1] = iVar9 + iVar10 + 1" (subscript_expression "param_1[1]" identifier [ number_literal ]) = (binary_expression "iVar9 + iVar10 + 1" (binary_expression "iVar9 + iVar10" identifier + identifier) + number_literal)) ;) (if_statement "if (0x7f < param_2) goto LAB_00092098;" if (parenthesized_expression "(0x7f < param_2)" ( (binary_expression "0x7f < param_2" number_literal < identifier) )) (goto_statement "goto LAB_00092098;" goto statement_identifier ;)) (expression_statement "*(char *)(*param_1 + local_3c) = (char)param_2;" (assignment_expression "*(char *)(*param_1 + local_3c) = (char)param_2" (pointer_expression "*(char *)(*param_1 + local_3c)" * (cast_expression "(char *)(*param_1 + local_3c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + local_3c)" ( (binary_expression "*param_1 + local_3c" (pointer_expression "*param_1" * identifier) + identifier) )))) = (cast_expression "(char)param_2" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (expression_statement "local_3c = iVar10;" (assignment_expression "local_3c = iVar10" identifier = identifier) ;) }) (else_clause "else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }" else (compound_statement "{\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }" { (labeled_statement "LAB_00091fbc:\n          param_2 = iVar3 - 2;" statement_identifier : (expression_statement "param_2 = iVar3 - 2;" (assignment_expression "param_2 = iVar3 - 2" identifier = (binary_expression "iVar3 - 2" identifier - number_literal)) ;)) (if_statement "if (iVar3 + -1 < 1) goto LAB_000920bc;" if (parenthesized_expression "(iVar3 + -1 < 1)" ( (binary_expression "iVar3 + -1 < 1" (binary_expression "iVar3 + -1" identifier + number_literal) < number_literal) )) (goto_statement "goto LAB_000920bc;" goto statement_identifier ;)) (expression_statement "iVar10 = iVar10 - iVar9;" (assignment_expression "iVar10 = iVar10 - iVar9" identifier = (binary_expression "iVar10 - iVar9" identifier - identifier)) ;) (if_statement "if (param_2 != 0) goto LAB_00091fcc;" if (parenthesized_expression "(param_2 != 0)" ( (binary_expression "param_2 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00091fcc;" goto statement_identifier ;)) (labeled_statement "LAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;" statement_identifier : (expression_statement "bVar1 = local_3c + 1 != iVar10;" (assignment_expression "bVar1 = local_3c + 1 != iVar10" identifier = (binary_expression "local_3c + 1 != iVar10" (binary_expression "local_3c + 1" identifier + number_literal) != identifier)) ;)) (expression_statement "iVar10 = iVar9 + iVar10;" (assignment_expression "iVar10 = iVar9 + iVar10" identifier = (binary_expression "iVar9 + iVar10" identifier + identifier)) ;) (if_statement "if (bVar1) goto LAB_00092068;" if (parenthesized_expression "(bVar1)" ( identifier )) (goto_statement "goto LAB_00092068;" goto statement_identifier ;)) (expression_statement "param_1[1] = iVar10;" (assignment_expression "param_1[1] = iVar10" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) }))) (if_statement "if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }" if (parenthesized_expression "(iVar12 == 0)" ( (binary_expression "iVar12 == 0" identifier == number_literal) )) (compound_statement "{\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }" { (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" identifier = number_literal) ;) (if_statement "if (0 < (int)uVar8) goto LAB_00091e7c;" if (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (goto_statement "goto LAB_00091e7c;" goto statement_identifier ;)) (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "cVar11 = -0x80;" (assignment_expression "cVar11 = -0x80" identifier = number_literal) ;) }) (else_clause "else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }" else (compound_statement "{\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }" { (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" identifier = number_literal) ;) (if_statement "if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }" if (parenthesized_expression "((int)uVar8 < 1)" ( (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }" { (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "cVar11 = -0x7f;" (assignment_expression "cVar11 = -0x7f" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }" else (compound_statement "{\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }" { (labeled_statement "LAB_00091e7c:\n            iVar3 = param_1[1];" statement_identifier : (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;)) (do_statement "do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);" do (compound_statement "{\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            }" { (expression_statement "uVar5 = local_30;" (assignment_expression "uVar5 = local_30" identifier = identifier) ;) (expression_statement "(*param_4)(param_1,param_3,&local_30);" (call_expression "(*param_4)(param_1,param_3,&local_30)" (parenthesized_expression "(*param_4)" ( (pointer_expression "*param_4" * identifier) )) (argument_list "(param_1,param_3,&local_30)" ( identifier , identifier , (pointer_expression "&local_30" & identifier) ))) ;) (expression_statement "iVar12 = param_1[1];" (assignment_expression "iVar12 = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "param_1[1] = iVar3;" (assignment_expression "param_1[1] = iVar3" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) (expression_statement "cVar11 = (char)iVar10;" (assignment_expression "cVar11 = (char)iVar10" identifier = (cast_expression "(char)iVar10" ( (type_descriptor "char" primitive_type) ) identifier)) ;) (if_statement "if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }" if (parenthesized_expression "(iVar9 != iVar12 - iVar3)" ( (binary_expression "iVar9 != iVar12 - iVar3" identifier != (binary_expression "iVar12 - iVar3" identifier - identifier)) )) (compound_statement "{\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }" { (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (labeled_statement "LAB_00091f08:\n                cVar11 = cVar11 + '~';" statement_identifier : (expression_statement "cVar11 = cVar11 + '~';" (assignment_expression "cVar11 = cVar11 + '~'" identifier = (binary_expression "cVar11 + '~'" identifier + (char_literal "'~'" ' character '))) ;)) (expression_statement "local_30 = uVar5;" (assignment_expression "local_30 = uVar5" identifier = identifier) ;) (goto_statement "goto LAB_00091f18;" goto statement_identifier ;) })) (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" identifier = (pointer_expression "*param_1" * identifier)) ;) (expression_statement "iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);" (assignment_expression "iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9)" identifier = (call_expression "(*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9)" (parenthesized_expression "(*(code *)PTR_memcmp_00112430)" ( (pointer_expression "*(code *)PTR_memcmp_00112430" * (cast_expression "(code *)PTR_memcmp_00112430" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(local_40 + local_3c + 1,local_40 + iVar3,iVar9)" ( (binary_expression "local_40 + local_3c + 1" (binary_expression "local_40 + local_3c" identifier + identifier) + number_literal) , (binary_expression "local_40 + iVar3" identifier + identifier) , identifier )))) ;) (if_statement "if (iVar12 != 0) goto LAB_00091f08;" if (parenthesized_expression "(iVar12 != 0)" ( (binary_expression "iVar12 != 0" identifier != number_literal) )) (goto_statement "goto LAB_00091f08;" goto statement_identifier ;)) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "param_3 = param_3 + 0xc;" (assignment_expression "param_3 = param_3 + 0xc" identifier = (binary_expression "param_3 + 0xc" identifier + number_literal)) ;) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" identifier = (binary_expression "iVar10 + 1" identifier + number_literal)) ;) (if_statement "if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }" if (parenthesized_expression "(uVar8 == 0)" ( (binary_expression "uVar8 == 0" identifier == number_literal) )) (compound_statement "{\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }" { (expression_statement "cVar11 = cVar11 + '\x7f';" (assignment_expression "cVar11 = cVar11 + '\x7f'" identifier = (binary_expression "cVar11 + '\x7f'" identifier + (char_literal "'\x7f'" ' escape_sequence '))) ;) (goto_statement "goto LAB_00091f18;" goto statement_identifier ;) })) }) while (parenthesized_expression "(iVar10 != 0x81)" ( (binary_expression "iVar10 != 0x81" identifier != number_literal) )) ;) (expression_statement "cVar11 = -1;" (assignment_expression "cVar11 = -1" identifier = number_literal) ;) }))) }))) (labeled_statement "LAB_00091f18:\n        iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "*(char *)(local_40 + local_3c) = cVar11;" (assignment_expression "*(char *)(local_40 + local_3c) = cVar11" (pointer_expression "*(char *)(local_40 + local_3c)" * (cast_expression "(char *)(local_40 + local_3c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(local_40 + local_3c)" ( (binary_expression "local_40 + local_3c" identifier + identifier) )))) = identifier) ;) (expression_statement "local_3c = param_1[1];" (assignment_expression "local_3c = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*pcVar18)(param_1,0);" (call_expression "(*pcVar18)(param_1,0)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(param_1,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) }) (else_clause "else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }" else (compound_statement "{\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }" { (labeled_statement "LAB_00091d8c:\n        iVar12 = 0;" statement_identifier : (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;)) (labeled_statement "LAB_00091d90:\n        iVar3 = iVar3 + 1;" statement_identifier : (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;)) (expression_statement "iVar9 = iVar14 - iVar15;" (assignment_expression "iVar9 = iVar14 - iVar15" identifier = (binary_expression "iVar14 - iVar15" identifier - identifier)) ;) (expression_statement "iVar10 = iVar15;" (assignment_expression "iVar10 = iVar15" identifier = identifier) ;) (if_statement "if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }" if (parenthesized_expression "(iVar3 == 0x80)" ( (binary_expression "iVar3 == 0x80" identifier == number_literal) )) (compound_statement "{\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }" { (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" identifier = number_literal) ;) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" identifier = number_literal) ;) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "*(undefined1 *)(*param_1 + local_3c) = 0x7f;" (assignment_expression "*(undefined1 *)(*param_1 + local_3c) = 0x7f" (pointer_expression "*(undefined1 *)(*param_1 + local_3c)" * (cast_expression "(undefined1 *)(*param_1 + local_3c)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + local_3c)" ( (binary_expression "*param_1 + local_3c" (pointer_expression "*param_1" * identifier) + identifier) )))) = number_literal) ;) (expression_statement "local_3c = param_1[1];" (assignment_expression "local_3c = param_1[1]" identifier = (subscript_expression "param_1[1]" identifier [ number_literal ])) ;) (expression_statement "(*pcVar18)(param_1,0);" (call_expression "(*pcVar18)(param_1,0)" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "(param_1,0)" ( identifier , number_literal ))) ;) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" identifier = number_literal) ;) })) }))) (expression_statement "uVar7 = uVar8 - 1;" (assignment_expression "uVar7 = uVar8 - 1" identifier = (binary_expression "uVar8 - 1" identifier - number_literal)) ;) (expression_statement "param_2 = uVar8;" (assignment_expression "param_2 = uVar8" identifier = identifier) ;) }) while (parenthesized_expression "(0 < (int)uVar8)" ( (binary_expression "0 < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" identifier = identifier) ;) (if_statement "if (iVar3 == 0) {\n    param_1[1] = local_3c;\n  }\n  else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }" if (parenthesized_expression "(iVar3 == 0)" ( (binary_expression "iVar3 == 0" identifier == number_literal) )) (compound_statement "{\n    param_1[1] = local_3c;\n  }" { (expression_statement "param_1[1] = local_3c;" (assignment_expression "param_1[1] = local_3c" (subscript_expression "param_1[1]" identifier [ number_literal ]) = identifier) ;) }) (else_clause "else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }" else (compound_statement "{\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }" { (if_statement "if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }" if (parenthesized_expression "(0x80 < iVar3)" ( (binary_expression "0x80 < iVar3" number_literal < identifier) )) (compound_statement "{\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }" { (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                )" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                )" ( (binary_expression "PTR_DAT_001112f8 + 0x58e4" identifier + number_literal) , (binary_expression "PTR_DAT_001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_001112f8 + 0x63ac" identifier + number_literal) ))) ;) (labeled_statement "LAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                )" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                )" ( (binary_expression "PTR_DAT_001112f8 + 0x58bc" identifier + number_literal) , (binary_expression "PTR_DAT_001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_001112f8 + 0x63ac" identifier + number_literal) ))) ;)) (goto_statement "goto LAB_0009208c;" goto statement_identifier ;) })) (expression_statement "*(char *)(*param_1 + local_3c) = (char)iVar3 + -1;" (assignment_expression "*(char *)(*param_1 + local_3c) = (char)iVar3 + -1" (pointer_expression "*(char *)(*param_1 + local_3c)" * (cast_expression "(char *)(*param_1 + local_3c)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*param_1 + local_3c)" ( (binary_expression "*param_1 + local_3c" (pointer_expression "*param_1" * identifier) + identifier) )))) = (binary_expression "(char)iVar3 + -1" (cast_expression "(char)iVar3" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) }))) (if_statement "if (local_2c == *(int *)puVar20) {\n    return;\n  }" if (parenthesized_expression "(local_2c == *(int *)puVar20)" ( (binary_expression "local_2c == *(int *)puVar20" identifier == (pointer_expression "*(int *)puVar20" * (cast_expression "(int *)puVar20" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (labeled_statement "LAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();" statement_identifier : (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" * (cast_expression "(code *)PTR___stack_chk_fail_001122c8" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;)) (labeled_statement "LAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);" statement_identifier : (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac)" ( (binary_expression "PTR_DAT_001112f8 + 0x58d4" identifier + number_literal) , (binary_expression "PTR_DAT_001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_001112f8 + 0x63ac" identifier + number_literal) ))) ;)) (labeled_statement "LAB_000920bc:\n  pcVar18 = FUN_000920e0;" statement_identifier : (expression_statement "pcVar18 = FUN_000920e0;" (assignment_expression "pcVar18 = FUN_000920e0" identifier = identifier) ;)) (expression_statement "puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);" (assignment_expression "puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0)" identifier = (cast_expression "(ushort *)(PTR_DAT_001112f8 + 0x58b0)" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(PTR_DAT_001112f8 + 0x58b0)" ( (binary_expression "PTR_DAT_001112f8 + 0x58b0" identifier + number_literal) )))) ;) (expression_statement "puVar19 = PTR___assert_fail_00111f50;" (assignment_expression "puVar19 = PTR___assert_fail_00111f50" identifier = identifier) ;) (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" ( (pointer_expression "*(code *)PTR___assert_fail_00111f50" * (cast_expression "(code *)PTR___assert_fail_00111f50" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac)" ( identifier , (binary_expression "PTR_DAT_001112f8 + 0x5830" identifier + number_literal) , number_literal , (binary_expression "PTR_DAT_001112f8 + 0x63ac" identifier + number_literal) ))) ;) (expression_statement "puVar20 = puVar19 + 0x871d0;" (assignment_expression "puVar20 = puVar19 + 0x871d0" identifier = (binary_expression "puVar19 + 0x871d0" identifier + number_literal)) ;) (expression_statement "piVar13 = *(int **)(puVar19 + 0x80550);" (assignment_expression "piVar13 = *(int **)(puVar19 + 0x80550)" identifier = (pointer_expression "*(int **)(puVar19 + 0x80550)" * (cast_expression "(int **)(puVar19 + 0x80550)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x80550)" ( (binary_expression "puVar19 + 0x80550" identifier + number_literal) ))))) ;) (expression_statement "uVar7 = *(uint *)(puVar4 + 2);" (assignment_expression "uVar7 = *(uint *)(puVar4 + 2)" identifier = (pointer_expression "*(uint *)(puVar4 + 2)" * (cast_expression "(uint *)(puVar4 + 2)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) ))))) ;) (expression_statement "uStack_90 = 0;" (assignment_expression "uStack_90 = 0" identifier = number_literal) ;) (expression_statement "iStack_8c = 0;" (assignment_expression "iStack_8c = 0" identifier = number_literal) ;) (expression_statement "uStack_88 = 0;" (assignment_expression "uStack_88 = 0" identifier = number_literal) ;) (expression_statement "iStack_84 = *piVar13;" (assignment_expression "iStack_84 = *piVar13" identifier = (pointer_expression "*piVar13" * identifier)) ;) (expression_statement "iStack_7c = param_3;" (assignment_expression "iStack_7c = param_3" identifier = identifier) ;) (expression_statement "uStack_78 = uVar8;" (assignment_expression "uStack_78 = uVar8" identifier = identifier) ;) (expression_statement "iStack_74 = iVar9;" (assignment_expression "iStack_74 = iVar9" identifier = identifier) ;) (expression_statement "iStack_70 = iVar10;" (assignment_expression "iStack_70 = iVar10" identifier = identifier) ;) (expression_statement "iStack_6c = iVar12;" (assignment_expression "iStack_6c = iVar12" identifier = identifier) ;) (expression_statement "uStack_68 = param_2;" (assignment_expression "uStack_68 = param_2" identifier = identifier) ;) (expression_statement "pcStack_64 = pcVar18;" (assignment_expression "pcStack_64 = pcVar18" identifier = identifier) ;) (for_statement "for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" for ( ; (binary_expression "0x7f < (int)uVar7" number_literal < (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier)) ; (assignment_expression "uVar7 = (int)uVar7 >> 7" identifier = (binary_expression "(int)uVar7 >> 7" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ) (compound_statement "{\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" { (expression_statement "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" identifier (argument_list "(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" ( (pointer_expression "&uStack_90" & identifier) , (binary_expression "(uVar7 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar7 | 0xffffff80)" ( (binary_expression "uVar7 | 0xffffff80" identifier | number_literal) )) & number_literal) ))) ;) })) (expression_statement "FUN_0008fe74(&uStack_90,uVar7 & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,uVar7 & 0xff)" identifier (argument_list "(&uStack_90,uVar7 & 0xff)" ( (pointer_expression "&uStack_90" & identifier) , (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) ;) (for_statement "for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" for ( (assignment_expression "uVar7 = (uint)*puVar4" identifier = (binary_expression "(uint)*puVar4" (parenthesized_expression "(uint)" ( identifier )) * identifier)) ; (binary_expression "0x7f < uVar7" number_literal < identifier) ; (assignment_expression "uVar7 = (int)uVar7 >> 7" identifier = (binary_expression "(int)uVar7 >> 7" (cast_expression "(int)uVar7" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ) (compound_statement "{\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" { (expression_statement "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" identifier (argument_list "(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" ( (pointer_expression "&uStack_90" & identifier) , (binary_expression "(uVar7 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar7 | 0xffffff80)" ( (binary_expression "uVar7 | 0xffffff80" identifier | number_literal) )) & number_literal) ))) ;) })) (expression_statement "FUN_0008fe74(&uStack_90,uVar7 & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,uVar7 & 0xff)" identifier (argument_list "(&uStack_90,uVar7 & 0xff)" ( (pointer_expression "&uStack_90" & identifier) , (binary_expression "uVar7 & 0xff" identifier & number_literal) ))) ;) (expression_statement "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58);" (call_expression "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58)" identifier (argument_list "(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58)" ( (pointer_expression "&uStack_90" & identifier) , (pointer_expression "*(undefined4 *)(puVar4 + 2)" * (cast_expression "(undefined4 *)(puVar4 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar4 + 10)" * (cast_expression "(undefined4 *)(puVar4 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) , (binary_expression "*(int *)(puVar19 + 0x7f9f8) + 0x58" (pointer_expression "*(int *)(puVar19 + 0x7f9f8)" * (cast_expression "(int *)(puVar19 + 0x7f9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x7f9f8)" ( (binary_expression "puVar19 + 0x7f9f8" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4);" (call_expression "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4)" identifier (argument_list "(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4)" ( (pointer_expression "&uStack_90" & identifier) , (pointer_expression "*(undefined4 *)(puVar4 + 2)" * (cast_expression "(undefined4 *)(puVar4 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar4 + 10)" * (cast_expression "(undefined4 *)(puVar4 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) , (binary_expression "*(int *)(puVar19 + 0x7f9f8) + -0xd4" (pointer_expression "*(int *)(puVar19 + 0x7f9f8)" * (cast_expression "(int *)(puVar19 + 0x7f9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x7f9f8)" ( (binary_expression "puVar19 + 0x7f9f8" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;" (assignment_expression "iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138" identifier = (binary_expression "*(int *)(puVar19 + 0x7f9f8) + 0x1138" (pointer_expression "*(int *)(puVar19 + 0x7f9f8)" * (cast_expression "(int *)(puVar19 + 0x7f9f8)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar19 + 0x7f9f8)" ( (binary_expression "puVar19 + 0x7f9f8" identifier + number_literal) )))) + number_literal)) ;) (expression_statement "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));" (call_expression "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10))" identifier (argument_list "(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10))" ( (pointer_expression "&uStack_90" & identifier) , (pointer_expression "*(undefined4 *)(puVar4 + 2)" * (cast_expression "(undefined4 *)(puVar4 + 2)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 2)" ( (binary_expression "puVar4 + 2" identifier + number_literal) )))) , (pointer_expression "*(undefined4 *)(puVar4 + 10)" * (cast_expression "(undefined4 *)(puVar4 + 10)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(puVar4 + 10)" ( (binary_expression "puVar4 + 10" identifier + number_literal) )))) ))) ;) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" identifier = number_literal) ;) (expression_statement "iVar10 = iStack_8c;" (assignment_expression "iVar10 = iStack_8c" identifier = identifier) ;) (expression_statement "(**(code **)(puVar19 + 0x7f310))(uStack_90);" (call_expression "(**(code **)(puVar19 + 0x7f310))(uStack_90)" (parenthesized_expression "(**(code **)(puVar19 + 0x7f310))" ( (pointer_expression "**(code **)(puVar19 + 0x7f310)" * (pointer_expression "*(code **)(puVar19 + 0x7f310)" * (cast_expression "(code **)(puVar19 + 0x7f310)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x7f310)" ( (binary_expression "puVar19 + 0x7f310" identifier + number_literal) ))))) )) (argument_list "(uStack_90)" ( identifier ))) ;) (if_statement "if (iStack_84 == *piVar13) {\n    return;\n  }" if (parenthesized_expression "(iStack_84 == *piVar13)" ( (binary_expression "iStack_84 == *piVar13" identifier == (pointer_expression "*piVar13" * identifier)) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar18 = *(code **)(puVar19 + 0x801e8);" (assignment_expression "pcVar18 = *(code **)(puVar19 + 0x801e8)" identifier = (pointer_expression "*(code **)(puVar19 + 0x801e8)" * (cast_expression "(code **)(puVar19 + 0x801e8)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar19 + 0x801e8)" ( (binary_expression "puVar19 + 0x801e8" identifier + number_literal) ))))) ;) (expression_statement "iVar12 = iStack_84;" (assignment_expression "iVar12 = iStack_84" identifier = identifier) ;) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" ( (pointer_expression "*pcVar18" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar10 == 0) {\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }" if (parenthesized_expression "(iVar10 == 0)" ( (binary_expression "iVar10 == 0" identifier == number_literal) )) (compound_statement "{\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }" { (expression_statement "iVar14 = iVar3;" (assignment_expression "iVar14 = iVar3" identifier = identifier) ;) (if_statement "if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }" if (parenthesized_expression "(*(int *)(iVar12 + 0x1a4) != 0)" ( (binary_expression "*(int *)(iVar12 + 0x1a4) != 0" (pointer_expression "*(int *)(iVar12 + 0x1a4)" * (cast_expression "(int *)(iVar12 + 0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x1a4)" ( (binary_expression "iVar12 + 0x1a4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      puVar20 = (undefined *)0x0;\n    }" { (expression_statement "puVar20 = (undefined *)0x0;" (assignment_expression "puVar20 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }" else (compound_statement "{\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }" { (expression_statement "puVar20 = (undefined *)0x0;" (assignment_expression "puVar20 = (undefined *)0x0" identifier = (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "iVar14 = iVar3 - iVar10;" (assignment_expression "iVar14 = iVar3 - iVar10" identifier = (binary_expression "iVar3 - iVar10" identifier - identifier)) ;) }))) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" identifier = (binary_expression "iVar14 + 1" identifier + number_literal)) ;) (if_statement "if (iVar9 < 0) {\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }\n  else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(iVar9 < 0)" ( (binary_expression "iVar9 < 0" identifier < number_literal) )) (compound_statement "{\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }" { (if_statement "if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }" if (parenthesized_expression "(-iVar9 <= iVar14)" ( (binary_expression "-iVar9 <= iVar14" (unary_expression "-iVar9" - identifier) <= identifier) )) (compound_statement "{\n      iVar14 = -iVar9;\n    }" { (expression_statement "iVar14 = -iVar9;" (assignment_expression "iVar14 = -iVar9" identifier = (unary_expression "-iVar9" - identifier)) ;) })) (for_statement "for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }" for ( ; (binary_expression "0 < iVar14" number_literal < identifier) ; (assignment_expression "iVar14 = iVar14 + -1" identifier = (binary_expression "iVar14 + -1" identifier + number_literal)) ) (compound_statement "{\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (expression_statement "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);" (assignment_expression "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3)" identifier = (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "delpos234(*(undefined4 *)(iVar12 + 8),iVar3)" identifier (argument_list "(*(undefined4 *)(iVar12 + 8),iVar3)" ( (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));" (call_expression "FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" identifier (argument_list "(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 300)" * (cast_expression "(undefined4 *)(iVar12 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }" if (parenthesized_expression "(0 < *(int *)(iVar12 + 300))" ( (binary_expression "0 < *(int *)(iVar12 + 300)" number_literal < (pointer_expression "*(int *)(iVar12 + 300)" * (cast_expression "(int *)(iVar12 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) ))))) )) (compound_statement "{\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }" { (do_statement "do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));" do (compound_statement "{\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "FUN_00091070(puVar2,iVar9,iVar12 + 0x54);" (call_expression "FUN_00091070(puVar2,iVar9,iVar12 + 0x54)" identifier (argument_list "(puVar2,iVar9,iVar12 + 0x54)" ( identifier , identifier , (binary_expression "iVar12 + 0x54" identifier + number_literal) ))) ;) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar9 < *(int *)(iVar12 + 300))" ( (binary_expression "iVar9 < *(int *)(iVar12 + 300)" identifier < (pointer_expression "*(int *)(iVar12 + 300)" * (cast_expression "(int *)(iVar12 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) ))))) )) ;) })) (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "addpos234(uVar5,puVar2,iVar10);" (call_expression "addpos234(uVar5,puVar2,iVar10)" identifier (argument_list "(uVar5,puVar2,iVar10)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)(iVar12 + 0xe54);" (assignment_expression "iVar9 = *(int *)(iVar12 + 0xe54)" identifier = (pointer_expression "*(int *)(iVar12 + 0xe54)" * (cast_expression "(int *)(iVar12 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe54)" ( (binary_expression "iVar12 + 0xe54" identifier + number_literal) ))))) ;) (if_statement "if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }" if (parenthesized_expression "((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3))" ( (binary_expression "(iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)" (parenthesized_expression "(iVar10 <= iVar9)" ( (binary_expression "iVar10 <= iVar9" identifier <= identifier) )) && (parenthesized_expression "(iVar15 = iVar9 + 1, iVar9 <= iVar3)" ( (comma_expression "iVar15 = iVar9 + 1, iVar9 <= iVar3" (assignment_expression "iVar15 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) , (binary_expression "iVar9 <= iVar3" identifier <= identifier)) ))) )) (compound_statement "{\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }" { (if_statement "if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }" if (parenthesized_expression "(iVar3 < iVar15)" ( (binary_expression "iVar3 < iVar15" identifier < identifier) )) (compound_statement "{\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }" { (expression_statement "iVar15 = iVar3 + 1;" (assignment_expression "iVar15 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar12 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe58)" * (cast_expression "(undefined4 *)(iVar12 + 0xe58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe58)" ( (binary_expression "iVar12 + 0xe58" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*(int *)(iVar12 + 0xe54) = iVar15;" (assignment_expression "*(int *)(iVar12 + 0xe54) = iVar15" (pointer_expression "*(int *)(iVar12 + 0xe54)" * (cast_expression "(int *)(iVar12 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe54)" ( (binary_expression "iVar12 + 0xe54" identifier + number_literal) )))) = identifier) ;) })) (expression_statement "iVar9 = *(int *)(iVar12 + 0xe5c);" (assignment_expression "iVar9 = *(int *)(iVar12 + 0xe5c)" identifier = (pointer_expression "*(int *)(iVar12 + 0xe5c)" * (cast_expression "(int *)(iVar12 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe5c)" ( (binary_expression "iVar12 + 0xe5c" identifier + number_literal) ))))) ;) (if_statement "if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }" if (parenthesized_expression "((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3))" ( (binary_expression "(iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)" (parenthesized_expression "(iVar10 <= iVar9)" ( (binary_expression "iVar10 <= iVar9" identifier <= identifier) )) && (parenthesized_expression "(iVar15 = iVar9 + 1, iVar9 <= iVar3)" ( (comma_expression "iVar15 = iVar9 + 1, iVar9 <= iVar3" (assignment_expression "iVar15 = iVar9 + 1" identifier = (binary_expression "iVar9 + 1" identifier + number_literal)) , (binary_expression "iVar9 <= iVar3" identifier <= identifier)) ))) )) (compound_statement "{\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }" { (if_statement "if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }" if (parenthesized_expression "(iVar3 < iVar15)" ( (binary_expression "iVar3 < iVar15" identifier < identifier) )) (compound_statement "{\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }" { (expression_statement "iVar15 = iVar3 + 1;" (assignment_expression "iVar15 = iVar3 + 1" identifier = (binary_expression "iVar3 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar12 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe60)" * (cast_expression "(undefined4 *)(iVar12 + 0xe60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe60)" ( (binary_expression "iVar12 + 0xe60" identifier + number_literal) )))) = number_literal) ;) })) (expression_statement "*(int *)(iVar12 + 0xe5c) = iVar15;" (assignment_expression "*(int *)(iVar12 + 0xe5c) = iVar15" (pointer_expression "*(int *)(iVar12 + 0xe5c)" * (cast_expression "(int *)(iVar12 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe5c)" ( (binary_expression "iVar12 + 0xe5c" identifier + number_literal) )))) = identifier) ;) })) })) }) (else_clause "else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }" { (expression_statement "iVar15 = *(int *)(pcVar18 + 0x7f84c);" (assignment_expression "iVar15 = *(int *)(pcVar18 + 0x7f84c)" identifier = (pointer_expression "*(int *)(pcVar18 + 0x7f84c)" * (cast_expression "(int *)(pcVar18 + 0x7f84c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar18 + 0x7f84c)" ( (binary_expression "pcVar18 + 0x7f84c" identifier + number_literal) ))))) ;) (if_statement "if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }" if (parenthesized_expression "(iVar14 <= iVar9)" ( (binary_expression "iVar14 <= iVar9" identifier <= identifier) )) (compound_statement "{\n      iVar9 = iVar14;\n    }" { (expression_statement "iVar9 = iVar14;" (assignment_expression "iVar9 = iVar14" identifier = identifier) ;) })) (for_statement "for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "0 < iVar9" number_literal < identifier) ; (assignment_expression "iVar9 = iVar9 + -1" identifier = (binary_expression "iVar9 + -1" identifier + number_literal)) ) (compound_statement "{\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }" { (expression_statement "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);" (assignment_expression "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10)" identifier = (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "delpos234(*(undefined4 *)(iVar12 + 8),iVar10)" identifier (argument_list "(*(undefined4 *)(iVar12 + 8),iVar10)" ( (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "iVar14 = iVar10;" (assignment_expression "iVar14 = iVar10" identifier = identifier) ;) (if_statement "if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }" if (parenthesized_expression "(puVar20 == (undefined *)0x0)" ( (binary_expression "puVar20 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }" { (expression_statement "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));" (call_expression "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" (parenthesized_expression "(*(code *)(iVar15 + 0xb64))" ( (pointer_expression "*(code *)(iVar15 + 0xb64)" * (cast_expression "(code *)(iVar15 + 0xb64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xb64)" ( (binary_expression "iVar15 + 0xb64" identifier + number_literal) )))) )) (argument_list "(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 300)" * (cast_expression "(undefined4 *)(iVar12 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;" if (parenthesized_expression "(0 < *(int *)(iVar12 + 300))" ( (binary_expression "0 < *(int *)(iVar12 + 300)" number_literal < (pointer_expression "*(int *)(iVar12 + 300)" * (cast_expression "(int *)(iVar12 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) ))))) )) (goto_statement "goto LAB_00092364;" goto statement_identifier ;)) (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "addpos234(uVar5,puVar2,iVar3);" (call_expression "addpos234(uVar5,puVar2,iVar3)" identifier (argument_list "(uVar5,puVar2,iVar3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }" else (compound_statement "{\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }" { (if_statement "if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }" if (parenthesized_expression "(0 < *(int *)(iVar12 + 0x130))" ( (binary_expression "0 < *(int *)(iVar12 + 0x130)" number_literal < (pointer_expression "*(int *)(iVar12 + 0x130)" * (cast_expression "(int *)(iVar12 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x130)" ( (binary_expression "iVar12 + 0x130" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }" { (expression_statement "iVar16 = count234(*(undefined4 *)(iVar12 + 4));" (assignment_expression "iVar16 = count234(*(undefined4 *)(iVar12 + 4))" identifier = (call_expression "count234(*(undefined4 *)(iVar12 + 4))" identifier (argument_list "(*(undefined4 *)(iVar12 + 4))" ( (pointer_expression "*(undefined4 *)(iVar12 + 4)" * (cast_expression "(undefined4 *)(iVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }" if (parenthesized_expression "(*(int *)(iVar12 + 0x130) == iVar16)" ( (binary_expression "*(int *)(iVar12 + 0x130) == iVar16" (pointer_expression "*(int *)(iVar12 + 0x130)" * (cast_expression "(int *)(iVar12 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x130)" ( (binary_expression "iVar12 + 0x130" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }" { (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) (expression_statement "uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);" (assignment_expression "uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0)" identifier = (call_expression "delpos234(*(undefined4 *)(iVar12 + 4),0)" identifier (argument_list "(*(undefined4 *)(iVar12 + 4),0)" ( (pointer_expression "*(undefined4 *)(iVar12 + 4)" * (cast_expression "(undefined4 *)(iVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "(**(code **)(pcVar18 + 0x7f064))(uVar5);" (call_expression "(**(code **)(pcVar18 + 0x7f064))(uVar5)" (parenthesized_expression "(**(code **)(pcVar18 + 0x7f064))" ( (pointer_expression "**(code **)(pcVar18 + 0x7f064)" * (pointer_expression "*(code **)(pcVar18 + 0x7f064)" * (cast_expression "(code **)(pcVar18 + 0x7f064)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar18 + 0x7f064)" ( (binary_expression "pcVar18 + 0x7f064" identifier + number_literal) ))))) )) (argument_list "(uVar5)" ( identifier ))) ;) }) (else_clause "else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }" else (compound_statement "{\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }" { (expression_statement "*(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;" (assignment_expression "*(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1" (pointer_expression "*(int *)(iVar12 + 0x14)" * (cast_expression "(int *)(iVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar12 + 0x14) + 1" (pointer_expression "*(int *)(iVar12 + 0x14)" * (cast_expression "(int *)(iVar12 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x14)" ( (binary_expression "iVar12 + 0x14" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar17 = *(undefined4 *)(iVar12 + 4);" (assignment_expression "uVar17 = *(undefined4 *)(iVar12 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 4)" * (cast_expression "(undefined4 *)(iVar12 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 4)" ( (binary_expression "iVar12 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar5 = FUN_000920e0(puVar2);" (assignment_expression "uVar5 = FUN_000920e0(puVar2)" identifier = (call_expression "FUN_000920e0(puVar2)" identifier (argument_list "(puVar2)" ( identifier )))) ;) (expression_statement "addpos234(uVar17,uVar5,iVar16);" (call_expression "addpos234(uVar17,uVar5,iVar16)" identifier (argument_list "(uVar17,uVar5,iVar16)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar16 = *(int *)(iVar12 + 0x10);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0x10)" identifier = (pointer_expression "*(int *)(iVar12 + 0x10)" * (cast_expression "(int *)(iVar12 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }" if (parenthesized_expression "((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0))" ( (binary_expression "(-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)" (parenthesized_expression "(-*(int *)(iVar12 + 0x130) < iVar16)" ( (binary_expression "-*(int *)(iVar12 + 0x130) < iVar16" (unary_expression "-*(int *)(iVar12 + 0x130)" - (pointer_expression "*(int *)(iVar12 + 0x130)" * (cast_expression "(int *)(iVar12 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x130)" ( (binary_expression "iVar12 + 0x130" identifier + number_literal) ))))) < identifier) )) && (parenthesized_expression "(iVar16 < 0)" ( (binary_expression "iVar16 < 0" identifier < number_literal) ))) )) (compound_statement "{\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }" { (expression_statement "*(int *)(iVar12 + 0x10) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0x10) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0x10)" * (cast_expression "(int *)(iVar12 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x10)" ( (binary_expression "iVar12 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) })) })) (expression_statement "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));" (call_expression "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" (parenthesized_expression "(*(code *)(iVar15 + 0xb64))" ( (pointer_expression "*(code *)(iVar15 + 0xb64)" * (cast_expression "(code *)(iVar15 + 0xb64)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar15 + 0xb64)" ( (binary_expression "iVar15 + 0xb64" identifier + number_literal) )))) )) (argument_list "(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar12 + 300)" * (cast_expression "(undefined4 *)(iVar12 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }" if (parenthesized_expression "(*(int *)(iVar12 + 300) < 1)" ( (binary_expression "*(int *)(iVar12 + 300) < 1" (pointer_expression "*(int *)(iVar12 + 300)" * (cast_expression "(int *)(iVar12 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }" { (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "addpos234(uVar5,puVar2,iVar3);" (call_expression "addpos234(uVar5,puVar2,iVar3)" identifier (argument_list "(uVar5,puVar2,iVar3)" ( identifier , identifier , identifier ))) ;) }) (else_clause "else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }" else (compound_statement "{\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }" { (labeled_statement "LAB_00092364:\n          iVar16 = 0;" statement_identifier : (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" identifier = number_literal) ;)) (do_statement "do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));" do (compound_statement "{\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          }" { (expression_statement "FUN_00091070(puVar2,iVar16,iVar12 + 0x54);" (call_expression "FUN_00091070(puVar2,iVar16,iVar12 + 0x54)" identifier (argument_list "(puVar2,iVar16,iVar12 + 0x54)" ( identifier , identifier , (binary_expression "iVar12 + 0x54" identifier + number_literal) ))) ;) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" identifier = (binary_expression "iVar16 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar16 < *(int *)(iVar12 + 300))" ( (binary_expression "iVar16 < *(int *)(iVar12 + 300)" identifier < (pointer_expression "*(int *)(iVar12 + 300)" * (cast_expression "(int *)(iVar12 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 300)" ( (binary_expression "iVar12 + 300" identifier + number_literal) ))))) )) ;) (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" identifier = (pointer_expression "*(undefined4 *)(iVar12 + 8)" * (cast_expression "(undefined4 *)(iVar12 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 8)" ( (binary_expression "iVar12 + 8" identifier + number_literal) ))))) ;) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" * identifier) = number_literal) ;) (expression_statement "addpos234(uVar5,puVar2,iVar3);" (call_expression "addpos234(uVar5,puVar2,iVar3)" identifier (argument_list "(uVar5,puVar2,iVar3)" ( identifier , identifier , identifier ))) ;) (if_statement "if (puVar20 == (undefined *)0x0) goto LAB_000923b8;" if (parenthesized_expression "(puVar20 == (undefined *)0x0)" ( (binary_expression "puVar20 == (undefined *)0x0" identifier == (cast_expression "(undefined *)0x0" ( (type_descriptor "undefined *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_000923b8;" goto statement_identifier ;)) }))) (expression_statement "iVar14 = -*(int *)(iVar12 + 0x130);" (assignment_expression "iVar14 = -*(int *)(iVar12 + 0x130)" identifier = (unary_expression "-*(int *)(iVar12 + 0x130)" - (pointer_expression "*(int *)(iVar12 + 0x130)" * (cast_expression "(int *)(iVar12 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0x130)" ( (binary_expression "iVar12 + 0x130" identifier + number_literal) )))))) ;) }))) (labeled_statement "LAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }" statement_identifier : (if_statement "if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }" if (parenthesized_expression "(*(int *)(iVar12 + 0xe48) != 0)" ( (binary_expression "*(int *)(iVar12 + 0xe48) != 0" (pointer_expression "*(int *)(iVar12 + 0xe48)" * (cast_expression "(int *)(iVar12 + 0xe48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe48)" ( (binary_expression "iVar12 + 0xe48" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }" { (expression_statement "iVar16 = *(int *)(iVar12 + 0xe54);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0xe54)" identifier = (pointer_expression "*(int *)(iVar12 + 0xe54)" * (cast_expression "(int *)(iVar12 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe54)" ( (binary_expression "iVar12 + 0xe54" identifier + number_literal) ))))) ;) (if_statement "if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }" if (parenthesized_expression "((iVar14 <= iVar16) && (iVar16 <= iVar3))" ( (binary_expression "(iVar14 <= iVar16) && (iVar16 <= iVar3)" (parenthesized_expression "(iVar14 <= iVar16)" ( (binary_expression "iVar14 <= iVar16" identifier <= identifier) )) && (parenthesized_expression "(iVar16 <= iVar3)" ( (binary_expression "iVar16 <= iVar3" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }" { (if_statement "if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }" if (parenthesized_expression "(iVar16 + -1 < iVar14)" ( (binary_expression "iVar16 + -1 < iVar14" (binary_expression "iVar16 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe54) = iVar14;" (assignment_expression "*(int *)(iVar12 + 0xe54) = iVar14" (pointer_expression "*(int *)(iVar12 + 0xe54)" * (cast_expression "(int *)(iVar12 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe54)" ( (binary_expression "iVar12 + 0xe54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar12 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe58)" * (cast_expression "(undefined4 *)(iVar12 + 0xe58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe58)" ( (binary_expression "iVar12 + 0xe58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe54) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0xe54) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0xe54)" * (cast_expression "(int *)(iVar12 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe54)" ( (binary_expression "iVar12 + 0xe54" identifier + number_literal) )))) = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar16 = *(int *)(iVar12 + 0xe5c);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0xe5c)" identifier = (pointer_expression "*(int *)(iVar12 + 0xe5c)" * (cast_expression "(int *)(iVar12 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe5c)" ( (binary_expression "iVar12 + 0xe5c" identifier + number_literal) ))))) ;) (if_statement "if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }" if (parenthesized_expression "((iVar14 <= iVar16) && (iVar16 <= iVar3))" ( (binary_expression "(iVar14 <= iVar16) && (iVar16 <= iVar3)" (parenthesized_expression "(iVar14 <= iVar16)" ( (binary_expression "iVar14 <= iVar16" identifier <= identifier) )) && (parenthesized_expression "(iVar16 <= iVar3)" ( (binary_expression "iVar16 <= iVar3" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }" { (if_statement "if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }" if (parenthesized_expression "(iVar16 + -1 < iVar14)" ( (binary_expression "iVar16 + -1 < iVar14" (binary_expression "iVar16 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe5c) = iVar14;" (assignment_expression "*(int *)(iVar12 + 0xe5c) = iVar14" (pointer_expression "*(int *)(iVar12 + 0xe5c)" * (cast_expression "(int *)(iVar12 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe5c)" ( (binary_expression "iVar12 + 0xe5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar12 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe60)" * (cast_expression "(undefined4 *)(iVar12 + 0xe60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe60)" ( (binary_expression "iVar12 + 0xe60" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe5c) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0xe5c) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0xe5c)" * (cast_expression "(int *)(iVar12 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe5c)" ( (binary_expression "iVar12 + 0xe5c" identifier + number_literal) )))) = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar16 = *(int *)(iVar12 + 0xe64);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0xe64)" identifier = (pointer_expression "*(int *)(iVar12 + 0xe64)" * (cast_expression "(int *)(iVar12 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe64)" ( (binary_expression "iVar12 + 0xe64" identifier + number_literal) ))))) ;) (if_statement "if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }" if (parenthesized_expression "((iVar14 <= iVar16) && (iVar16 <= iVar3))" ( (binary_expression "(iVar14 <= iVar16) && (iVar16 <= iVar3)" (parenthesized_expression "(iVar14 <= iVar16)" ( (binary_expression "iVar14 <= iVar16" identifier <= identifier) )) && (parenthesized_expression "(iVar16 <= iVar3)" ( (binary_expression "iVar16 <= iVar3" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }" { (if_statement "if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }" if (parenthesized_expression "(iVar16 + -1 < iVar14)" ( (binary_expression "iVar16 + -1 < iVar14" (binary_expression "iVar16 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe64) = iVar14;" (assignment_expression "*(int *)(iVar12 + 0xe64) = iVar14" (pointer_expression "*(int *)(iVar12 + 0xe64)" * (cast_expression "(int *)(iVar12 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe64)" ( (binary_expression "iVar12 + 0xe64" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar12 + 0xe68) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe68) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe68)" * (cast_expression "(undefined4 *)(iVar12 + 0xe68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe68)" ( (binary_expression "iVar12 + 0xe68" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }" { (expression_statement "*(int *)(iVar12 + 0xe64) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0xe64) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0xe64)" * (cast_expression "(int *)(iVar12 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar12 + 0xe64)" ( (binary_expression "iVar12 + 0xe64" identifier + number_literal) )))) = (binary_expression "iVar16 + -1" identifier + number_literal)) ;) }))) })) }))) })) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + IDENT) , (binary_expression IDENT + IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (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 = LIT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression 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 ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + LIT) , (binary_expression IDENT + IDENT) , IDENT ))) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression (binary_expression IDENT + IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + LIT) != IDENT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + IDENT)) ;) (if_statement if (parenthesized_expression ( IDENT )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT - IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (char_literal ' character '))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression (binary_expression IDENT + IDENT) + LIT) , (binary_expression IDENT + IDENT) , IDENT )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (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)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + (char_literal ' escape_sequence '))) ;) (goto_statement goto statement_identifier ;) })) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }))) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) + IDENT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;)) (labeled_statement statement_identifier : (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (binary_expression IDENT + LIT) , (binary_expression IDENT + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , (binary_expression IDENT + LIT) , LIT , (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (for_statement for ( ; (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) ; (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT | LIT) )) & LIT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT & LIT) ))) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * IDENT)) ; (binary_expression LIT < IDENT) ; (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT | LIT) )) & LIT) ))) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * IDENT)) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT - IDENT)) ;) }))) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (unary_expression - IDENT) <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (unary_expression - IDENT)) ;) })) (for_statement for ( ; (binary_expression LIT < IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , 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 (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT <= IDENT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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) )))) = 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 (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression IDENT <= IDENT)) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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) )))) = IDENT) ;) })) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (for_statement for ( ; (binary_expression LIT < IDENT) ; (assignment_expression IDENT = (binary_expression IDENT + LIT)) ) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , LIT )))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT ))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT)) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT )))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , 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 (parenthesized_expression ( (binary_expression (unary_expression - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) < IDENT) )) && (parenthesized_expression ( (binary_expression IDENT < LIT) ))) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) })) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) )) (argument_list ( IDENT , IDENT , (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , (binary_expression IDENT + LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) }))) (expression_statement (assignment_expression IDENT = (unary_expression - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) (compound_statement { (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 (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT <= IDENT) )) && (parenthesized_expression ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT + LIT) < IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression IDENT + LIT)) ;) }))) })) }))) })) }))) (return_statement return ;) })))
(function_definition "void FUN_00091cb8(int *param_1,uint param_2,int param_3,code *param_4)\n\n{\n  bool bVar1;\n  undefined2 *puVar2;\n  int iVar3;\n  ushort *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  int iVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined4 uStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  int iStack_84;\n  int iStack_7c;\n  uint uStack_78;\n  int iStack_74;\n  int iStack_70;\n  int iStack_6c;\n  uint uStack_68;\n  code *pcStack_64;\n  int local_40;\n  int local_3c;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_00112630;\n  local_3c = param_1[1];\n  local_2c = *(int *)PTR___stack_chk_guard_00112630;\n  pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);\n  iVar12 = 0;\n  iVar10 = 0;\n  iVar9 = 0;\n  uVar7 = param_2 - 1;\n  local_30 = 0;\n  FUN_0008fe74(param_1,0);\n  iVar3 = 0;\n  if (0 < (int)param_2) {\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }\n  uVar8 = uVar7;\n  if (iVar3 == 0) {\n    param_1[1] = local_3c;\n  }\n  else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }\n  if (local_2c == *(int *)puVar20) {\n    return;\n  }\nLAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();\nLAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);\nLAB_000920bc:\n  pcVar18 = FUN_000920e0;\n  puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);\n  puVar19 = PTR___assert_fail_00111f50;\n  (*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);\n  puVar20 = puVar19 + 0x871d0;\n  piVar13 = *(int **)(puVar19 + 0x80550);\n  uVar7 = *(uint *)(puVar4 + 2);\n  uStack_90 = 0;\n  iStack_8c = 0;\n  uStack_88 = 0;\n  iStack_84 = *piVar13;\n  iStack_7c = param_3;\n  uStack_78 = uVar8;\n  iStack_74 = iVar9;\n  iStack_70 = iVar10;\n  iStack_6c = iVar12;\n  uStack_68 = param_2;\n  pcStack_64 = pcVar18;\n  for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4);\n  iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));\n  iVar3 = 1;\n  iVar10 = iStack_8c;\n  (**(code **)(puVar19 + 0x7f310))(uStack_90);\n  if (iStack_84 == *piVar13) {\n    return;\n  }\n  pcVar18 = *(code **)(puVar19 + 0x801e8);\n  iVar12 = iStack_84;\n  (*pcVar18)();\n  if (iVar10 == 0) {\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }\n  iVar14 = iVar14 + 1;\n  if (iVar9 < 0) {\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }\n  else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_00091cb8(int *param_1,uint param_2,int param_3,code *param_4)" (identifier "FUN_00091cb8") (parameter_list "(int *param_1,uint param_2,int param_3,code *param_4)" (( "(") (parameter_declaration "int *param_1" (primitive_type "int") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) (, ",") (parameter_declaration "uint param_2" (type_identifier "uint") (identifier "param_2")) (, ",") (parameter_declaration "int param_3" (primitive_type "int") (identifier "param_3")) (, ",") (parameter_declaration "code *param_4" (type_identifier "code") (pointer_declarator "*param_4" (* "*") (identifier "param_4"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined2 *puVar2;\n  int iVar3;\n  ushort *puVar4;\n  undefined4 uVar5;\n  int iVar6;\n  uint uVar7;\n  uint uVar8;\n  int iVar9;\n  int iVar10;\n  char cVar11;\n  int iVar12;\n  int *piVar13;\n  int iVar14;\n  int iVar15;\n  int iVar16;\n  undefined4 uVar17;\n  code *pcVar18;\n  undefined *puVar19;\n  undefined *puVar20;\n  undefined4 uStack_90;\n  int iStack_8c;\n  undefined4 uStack_88;\n  int iStack_84;\n  int iStack_7c;\n  uint uStack_78;\n  int iStack_74;\n  int iStack_70;\n  int iStack_6c;\n  uint uStack_68;\n  code *pcStack_64;\n  int local_40;\n  int local_3c;\n  undefined4 local_30;\n  int local_2c;\n  \n  puVar20 = PTR___stack_chk_guard_00112630;\n  local_3c = param_1[1];\n  local_2c = *(int *)PTR___stack_chk_guard_00112630;\n  pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);\n  iVar12 = 0;\n  iVar10 = 0;\n  iVar9 = 0;\n  uVar7 = param_2 - 1;\n  local_30 = 0;\n  FUN_0008fe74(param_1,0);\n  iVar3 = 0;\n  if (0 < (int)param_2) {\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }\n  uVar8 = uVar7;\n  if (iVar3 == 0) {\n    param_1[1] = local_3c;\n  }\n  else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }\n  if (local_2c == *(int *)puVar20) {\n    return;\n  }\nLAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();\nLAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);\nLAB_000920bc:\n  pcVar18 = FUN_000920e0;\n  puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);\n  puVar19 = PTR___assert_fail_00111f50;\n  (*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);\n  puVar20 = puVar19 + 0x871d0;\n  piVar13 = *(int **)(puVar19 + 0x80550);\n  uVar7 = *(uint *)(puVar4 + 2);\n  uStack_90 = 0;\n  iStack_8c = 0;\n  uStack_88 = 0;\n  iStack_84 = *piVar13;\n  iStack_7c = param_3;\n  uStack_78 = uVar8;\n  iStack_74 = iVar9;\n  iStack_70 = iVar10;\n  iStack_6c = iVar12;\n  uStack_68 = param_2;\n  pcStack_64 = pcVar18;\n  for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }\n  FUN_0008fe74(&uStack_90,uVar7 & 0xff);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58);\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4);\n  iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;\n  FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));\n  iVar3 = 1;\n  iVar10 = iStack_8c;\n  (**(code **)(puVar19 + 0x7f310))(uStack_90);\n  if (iStack_84 == *piVar13) {\n    return;\n  }\n  pcVar18 = *(code **)(puVar19 + 0x801e8);\n  iVar12 = iStack_84;\n  (*pcVar18)();\n  if (iVar10 == 0) {\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }\n  iVar14 = iVar14 + 1;\n  if (iVar9 < 0) {\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }\n  else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined2 *puVar2;" (type_identifier "undefined2") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "int iVar3;" (primitive_type "int") (identifier "iVar3") (; ";")) (declaration "ushort *puVar4;" (type_identifier "ushort") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "undefined4 uVar5;" (type_identifier "undefined4") (identifier "uVar5") (; ";")) (declaration "int iVar6;" (primitive_type "int") (identifier "iVar6") (; ";")) (declaration "uint uVar7;" (type_identifier "uint") (identifier "uVar7") (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "int iVar10;" (primitive_type "int") (identifier "iVar10") (; ";")) (declaration "char cVar11;" (primitive_type "char") (identifier "cVar11") (; ";")) (declaration "int iVar12;" (primitive_type "int") (identifier "iVar12") (; ";")) (declaration "int *piVar13;" (primitive_type "int") (pointer_declarator "*piVar13" (* "*") (identifier "piVar13")) (; ";")) (declaration "int iVar14;" (primitive_type "int") (identifier "iVar14") (; ";")) (declaration "int iVar15;" (primitive_type "int") (identifier "iVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "undefined4 uVar17;" (type_identifier "undefined4") (identifier "uVar17") (; ";")) (declaration "code *pcVar18;" (type_identifier "code") (pointer_declarator "*pcVar18" (* "*") (identifier "pcVar18")) (; ";")) (declaration "undefined *puVar19;" (type_identifier "undefined") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "undefined *puVar20;" (type_identifier "undefined") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "undefined4 uStack_90;" (type_identifier "undefined4") (identifier "uStack_90") (; ";")) (declaration "int iStack_8c;" (primitive_type "int") (identifier "iStack_8c") (; ";")) (declaration "undefined4 uStack_88;" (type_identifier "undefined4") (identifier "uStack_88") (; ";")) (declaration "int iStack_84;" (primitive_type "int") (identifier "iStack_84") (; ";")) (declaration "int iStack_7c;" (primitive_type "int") (identifier "iStack_7c") (; ";")) (declaration "uint uStack_78;" (type_identifier "uint") (identifier "uStack_78") (; ";")) (declaration "int iStack_74;" (primitive_type "int") (identifier "iStack_74") (; ";")) (declaration "int iStack_70;" (primitive_type "int") (identifier "iStack_70") (; ";")) (declaration "int iStack_6c;" (primitive_type "int") (identifier "iStack_6c") (; ";")) (declaration "uint uStack_68;" (type_identifier "uint") (identifier "uStack_68") (; ";")) (declaration "code *pcStack_64;" (type_identifier "code") (pointer_declarator "*pcStack_64" (* "*") (identifier "pcStack_64")) (; ";")) (declaration "int local_40;" (primitive_type "int") (identifier "local_40") (; ";")) (declaration "int local_3c;" (primitive_type "int") (identifier "local_3c") (; ";")) (declaration "undefined4 local_30;" (type_identifier "undefined4") (identifier "local_30") (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar20 = PTR___stack_chk_guard_00112630;" (assignment_expression "puVar20 = PTR___stack_chk_guard_00112630" (identifier "puVar20") (= "=") (identifier "PTR___stack_chk_guard_00112630")) (; ";")) (expression_statement "local_3c = param_1[1];" (assignment_expression "local_3c = param_1[1]" (identifier "local_3c") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_00112630;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_00112630" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_00112630" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_00112630" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_00112630")))) (; ";")) (expression_statement "pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);" (assignment_expression "pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c)" (identifier "pcVar18") (= "=") (cast_expression "(code *)(PTR_LAB_00111ad8 + -0x18c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_LAB_00111ad8 + -0x18c)" (( "(") (binary_expression "PTR_LAB_00111ad8 + -0x18c" (identifier "PTR_LAB_00111ad8") (+ "+") (number_literal "-0x18c")) () ")")))) (; ";")) (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar7 = param_2 - 1;" (assignment_expression "uVar7 = param_2 - 1" (identifier "uVar7") (= "=") (binary_expression "param_2 - 1" (identifier "param_2") (- "-") (number_literal "1"))) (; ";")) (expression_statement "local_30 = 0;" (assignment_expression "local_30 = 0" (identifier "local_30") (= "=") (number_literal "0")) (; ";")) (expression_statement "FUN_0008fe74(param_1,0);" (call_expression "FUN_0008fe74(param_1,0)" (identifier "FUN_0008fe74") (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (if_statement "if (0 < (int)param_2) {\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }" (if "if") (parenthesized_expression "(0 < (int)param_2)" (( "(") (binary_expression "0 < (int)param_2" (number_literal "0") (< "<") (cast_expression "(int)param_2" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "param_2"))) () ")")) (compound_statement "{\n    do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);\n  }" ({ "{") (do_statement "do {\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    } while (0 < (int)uVar8);" (do "do") (compound_statement "{\n      uVar8 = uVar7;\n      iVar15 = param_1[1];\n      (*param_4)(param_1,param_3,&local_30);\n      param_3 = param_3 + 0xc;\n      iVar14 = param_1[1];\n      if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }\n      uVar7 = uVar8 - 1;\n      param_2 = uVar8;\n    }" ({ "{") (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" (identifier "uVar8") (= "=") (identifier "uVar7")) (; ";")) (expression_statement "iVar15 = param_1[1];" (assignment_expression "iVar15 = param_1[1]" (identifier "iVar15") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "(*param_4)(param_1,param_3,&local_30);" (call_expression "(*param_4)(param_1,param_3,&local_30)" (parenthesized_expression "(*param_4)" (( "(") (pointer_expression "*param_4" (* "*") (identifier "param_4")) () ")")) (argument_list "(param_1,param_3,&local_30)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))) (; ";")) (expression_statement "param_3 = param_3 + 0xc;" (assignment_expression "param_3 = param_3 + 0xc" (identifier "param_3") (= "=") (binary_expression "param_3 + 0xc" (identifier "param_3") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "iVar14 = param_1[1];" (assignment_expression "iVar14 = param_1[1]" (identifier "iVar14") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (if_statement "if (iVar14 - iVar15 == iVar9) {\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }\n      else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }" (if "if") (parenthesized_expression "(iVar14 - iVar15 == iVar9)" (( "(") (binary_expression "iVar14 - iVar15 == iVar9" (binary_expression "iVar14 - iVar15" (identifier "iVar14") (- "-") (identifier "iVar15")) (== "==") (identifier "iVar9")) () ")")) (compound_statement "{\n        iVar6 = *param_1;\n        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);\n        if (iVar16 != 0) goto LAB_00091d8c;\n        if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }\n        param_2 = iVar3 - 1;\n        if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }\n        if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }\nLAB_00091f18:\n        iVar12 = 0;\n        iVar9 = 0;\n        iVar10 = 0;\n        *(char *)(local_40 + local_3c) = cVar11;\n        local_3c = param_1[1];\n        (*pcVar18)(param_1,0);\n        iVar3 = 0;\n      }" ({ "{") (expression_statement "iVar6 = *param_1;" (assignment_expression "iVar6 = *param_1" (identifier "iVar6") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);" (assignment_expression "iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9)" (identifier "iVar16") (= "=") (call_expression "(*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9)" (parenthesized_expression "(*(code *)PTR_memcmp_00112430)" (( "(") (pointer_expression "*(code *)PTR_memcmp_00112430" (* "*") (cast_expression "(code *)PTR_memcmp_00112430" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcmp_00112430"))) () ")")) (argument_list "(iVar6 + iVar10,iVar6 + iVar15,iVar9)" (( "(") (binary_expression "iVar6 + iVar10" (identifier "iVar6") (+ "+") (identifier "iVar10")) (, ",") (binary_expression "iVar6 + iVar15" (identifier "iVar6") (+ "+") (identifier "iVar15")) (, ",") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (iVar16 != 0) goto LAB_00091d8c;" (if "if") (parenthesized_expression "(iVar16 != 0)" (( "(") (binary_expression "iVar16 != 0" (identifier "iVar16") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00091d8c;" (goto "goto") (statement_identifier "LAB_00091d8c") (; ";"))) (if_statement "if (iVar9 < 2) {\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }" (if "if") (parenthesized_expression "(iVar9 < 2)" (( "(") (binary_expression "iVar9 < 2" (identifier "iVar9") (< "<") (number_literal "2")) () ")")) (compound_statement "{\n          if (iVar12 != 0) goto LAB_00091fbc;\n          iVar12 = 1;\n          goto LAB_00091d90;\n        }" ({ "{") (if_statement "if (iVar12 != 0) goto LAB_00091fbc;" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00091fbc;" (goto "goto") (statement_identifier "LAB_00091fbc") (; ";"))) (expression_statement "iVar12 = 1;" (assignment_expression "iVar12 = 1" (identifier "iVar12") (= "=") (number_literal "1")) (; ";")) (goto_statement "goto LAB_00091d90;" (goto "goto") (statement_identifier "LAB_00091d90") (; ";")) (} "}"))) (expression_statement "param_2 = iVar3 - 1;" (assignment_expression "param_2 = iVar3 - 1" (identifier "param_2") (= "=") (binary_expression "iVar3 - 1" (identifier "iVar3") (- "-") (number_literal "1"))) (; ";")) (if_statement "if (iVar12 == 0) {\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }\n        else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          if (param_2 == 0) goto LAB_00091e58;\nLAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);\n          param_2 = param_2 - 1;\n          param_1[1] = iVar9 + iVar10 + 1;\n          if (0x7f < param_2) goto LAB_00092098;\n          *(char *)(*param_1 + local_3c) = (char)param_2;\n          local_3c = iVar10;\n        }" ({ "{") (if_statement "if (param_2 == 0) goto LAB_00091e58;" (if "if") (parenthesized_expression "(param_2 == 0)" (( "(") (binary_expression "param_2 == 0" (identifier "param_2") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_00091e58;" (goto "goto") (statement_identifier "LAB_00091e58") (; ";"))) (labeled_statement "LAB_00091fcc:\n          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);" (statement_identifier "LAB_00091fcc") (: ":") (expression_statement "(*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);" (call_expression "(*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9)" (parenthesized_expression "(*(code *)PTR_memmove_00111fe8)" (( "(") (pointer_expression "*(code *)PTR_memmove_00111fe8" (* "*") (cast_expression "(code *)PTR_memmove_00111fe8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memmove_00111fe8"))) () ")")) (argument_list "(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9)" (( "(") (binary_expression "iVar6 + iVar10 + 1" (binary_expression "iVar6 + iVar10" (identifier "iVar6") (+ "+") (identifier "iVar10")) (+ "+") (number_literal "1")) (, ",") (binary_expression "iVar6 + iVar10" (identifier "iVar6") (+ "+") (identifier "iVar10")) (, ",") (identifier "iVar9") () ")"))) (; ";"))) (expression_statement "param_2 = param_2 - 1;" (assignment_expression "param_2 = param_2 - 1" (identifier "param_2") (= "=") (binary_expression "param_2 - 1" (identifier "param_2") (- "-") (number_literal "1"))) (; ";")) (expression_statement "param_1[1] = iVar9 + iVar10 + 1;" (assignment_expression "param_1[1] = iVar9 + iVar10 + 1" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (binary_expression "iVar9 + iVar10 + 1" (binary_expression "iVar9 + iVar10" (identifier "iVar9") (+ "+") (identifier "iVar10")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (0x7f < param_2) goto LAB_00092098;" (if "if") (parenthesized_expression "(0x7f < param_2)" (( "(") (binary_expression "0x7f < param_2" (number_literal "0x7f") (< "<") (identifier "param_2")) () ")")) (goto_statement "goto LAB_00092098;" (goto "goto") (statement_identifier "LAB_00092098") (; ";"))) (expression_statement "*(char *)(*param_1 + local_3c) = (char)param_2;" (assignment_expression "*(char *)(*param_1 + local_3c) = (char)param_2" (pointer_expression "*(char *)(*param_1 + local_3c)" (* "*") (cast_expression "(char *)(*param_1 + local_3c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + local_3c)" (( "(") (binary_expression "*param_1 + local_3c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "local_3c")) () ")")))) (= "=") (cast_expression "(char)param_2" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "param_2"))) (; ";")) (expression_statement "local_3c = iVar10;" (assignment_expression "local_3c = iVar10" (identifier "local_3c") (= "=") (identifier "iVar10")) (; ";")) (} "}")) (else_clause "else {\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }" (else "else") (compound_statement "{\nLAB_00091fbc:\n          param_2 = iVar3 - 2;\n          if (iVar3 + -1 < 1) goto LAB_000920bc;\n          iVar10 = iVar10 - iVar9;\n          if (param_2 != 0) goto LAB_00091fcc;\nLAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;\n          iVar10 = iVar9 + iVar10;\n          if (bVar1) goto LAB_00092068;\n          param_1[1] = iVar10;\n        }" ({ "{") (labeled_statement "LAB_00091fbc:\n          param_2 = iVar3 - 2;" (statement_identifier "LAB_00091fbc") (: ":") (expression_statement "param_2 = iVar3 - 2;" (assignment_expression "param_2 = iVar3 - 2" (identifier "param_2") (= "=") (binary_expression "iVar3 - 2" (identifier "iVar3") (- "-") (number_literal "2"))) (; ";"))) (if_statement "if (iVar3 + -1 < 1) goto LAB_000920bc;" (if "if") (parenthesized_expression "(iVar3 + -1 < 1)" (( "(") (binary_expression "iVar3 + -1 < 1" (binary_expression "iVar3 + -1" (identifier "iVar3") (+ "+") (number_literal "-1")) (< "<") (number_literal "1")) () ")")) (goto_statement "goto LAB_000920bc;" (goto "goto") (statement_identifier "LAB_000920bc") (; ";"))) (expression_statement "iVar10 = iVar10 - iVar9;" (assignment_expression "iVar10 = iVar10 - iVar9" (identifier "iVar10") (= "=") (binary_expression "iVar10 - iVar9" (identifier "iVar10") (- "-") (identifier "iVar9"))) (; ";")) (if_statement "if (param_2 != 0) goto LAB_00091fcc;" (if "if") (parenthesized_expression "(param_2 != 0)" (( "(") (binary_expression "param_2 != 0" (identifier "param_2") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00091fcc;" (goto "goto") (statement_identifier "LAB_00091fcc") (; ";"))) (labeled_statement "LAB_00091e58:\n          bVar1 = local_3c + 1 != iVar10;" (statement_identifier "LAB_00091e58") (: ":") (expression_statement "bVar1 = local_3c + 1 != iVar10;" (assignment_expression "bVar1 = local_3c + 1 != iVar10" (identifier "bVar1") (= "=") (binary_expression "local_3c + 1 != iVar10" (binary_expression "local_3c + 1" (identifier "local_3c") (+ "+") (number_literal "1")) (!= "!=") (identifier "iVar10"))) (; ";"))) (expression_statement "iVar10 = iVar9 + iVar10;" (assignment_expression "iVar10 = iVar9 + iVar10" (identifier "iVar10") (= "=") (binary_expression "iVar9 + iVar10" (identifier "iVar9") (+ "+") (identifier "iVar10"))) (; ";")) (if_statement "if (bVar1) goto LAB_00092068;" (if "if") (parenthesized_expression "(bVar1)" (( "(") (identifier "bVar1") () ")")) (goto_statement "goto LAB_00092068;" (goto "goto") (statement_identifier "LAB_00092068") (; ";"))) (expression_statement "param_1[1] = iVar10;" (assignment_expression "param_1[1] = iVar10" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar10")) (; ";")) (} "}")))) (if_statement "if (iVar12 == 0) {\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }\n        else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }" (if "if") (parenthesized_expression "(iVar12 == 0)" (( "(") (binary_expression "iVar12 == 0" (identifier "iVar12") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n          iVar10 = 2;\n          if (0 < (int)uVar8) goto LAB_00091e7c;\n          local_40 = *param_1;\n          cVar11 = -0x80;\n        }" ({ "{") (expression_statement "iVar10 = 2;" (assignment_expression "iVar10 = 2" (identifier "iVar10") (= "=") (number_literal "2")) (; ";")) (if_statement "if (0 < (int)uVar8) goto LAB_00091e7c;" (if "if") (parenthesized_expression "(0 < (int)uVar8)" (( "(") (binary_expression "0 < (int)uVar8" (number_literal "0") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (goto_statement "goto LAB_00091e7c;" (goto "goto") (statement_identifier "LAB_00091e7c") (; ";"))) (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" (identifier "local_40") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "cVar11 = -0x80;" (assignment_expression "cVar11 = -0x80" (identifier "cVar11") (= "=") (number_literal "-0x80")) (; ";")) (} "}")) (else_clause "else {\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }" (else "else") (compound_statement "{\n          iVar10 = 3;\n          if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }\n        }" ({ "{") (expression_statement "iVar10 = 3;" (assignment_expression "iVar10 = 3" (identifier "iVar10") (= "=") (number_literal "3")) (; ";")) (if_statement "if ((int)uVar8 < 1) {\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }\n          else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }" (if "if") (parenthesized_expression "((int)uVar8 < 1)" (( "(") (binary_expression "(int)uVar8 < 1" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n            local_40 = *param_1;\n            cVar11 = -0x7f;\n          }" ({ "{") (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" (identifier "local_40") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "cVar11 = -0x7f;" (assignment_expression "cVar11 = -0x7f" (identifier "cVar11") (= "=") (number_literal "-0x7f")) (; ";")) (} "}")) (else_clause "else {\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }" (else "else") (compound_statement "{\nLAB_00091e7c:\n            iVar3 = param_1[1];\n            do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);\n            cVar11 = -1;\n          }" ({ "{") (labeled_statement "LAB_00091e7c:\n            iVar3 = param_1[1];" (statement_identifier "LAB_00091e7c") (: ":") (expression_statement "iVar3 = param_1[1];" (assignment_expression "iVar3 = param_1[1]" (identifier "iVar3") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";"))) (do_statement "do {\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            } while (iVar10 != 0x81);" (do "do") (compound_statement "{\n              uVar5 = local_30;\n              (*param_4)(param_1,param_3,&local_30);\n              iVar12 = param_1[1];\n              param_1[1] = iVar3;\n              cVar11 = (char)iVar10;\n              if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }\n              local_40 = *param_1;\n              iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);\n              if (iVar12 != 0) goto LAB_00091f08;\n              uVar8 = uVar8 - 1;\n              param_3 = param_3 + 0xc;\n              iVar10 = iVar10 + 1;\n              if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }\n            }" ({ "{") (expression_statement "uVar5 = local_30;" (assignment_expression "uVar5 = local_30" (identifier "uVar5") (= "=") (identifier "local_30")) (; ";")) (expression_statement "(*param_4)(param_1,param_3,&local_30);" (call_expression "(*param_4)(param_1,param_3,&local_30)" (parenthesized_expression "(*param_4)" (( "(") (pointer_expression "*param_4" (* "*") (identifier "param_4")) () ")")) (argument_list "(param_1,param_3,&local_30)" (( "(") (identifier "param_1") (, ",") (identifier "param_3") (, ",") (pointer_expression "&local_30" (& "&") (identifier "local_30")) () ")"))) (; ";")) (expression_statement "iVar12 = param_1[1];" (assignment_expression "iVar12 = param_1[1]" (identifier "iVar12") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "param_1[1] = iVar3;" (assignment_expression "param_1[1] = iVar3" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "iVar3")) (; ";")) (expression_statement "cVar11 = (char)iVar10;" (assignment_expression "cVar11 = (char)iVar10" (identifier "cVar11") (= "=") (cast_expression "(char)iVar10" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar10"))) (; ";")) (if_statement "if (iVar9 != iVar12 - iVar3) {\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }" (if "if") (parenthesized_expression "(iVar9 != iVar12 - iVar3)" (( "(") (binary_expression "iVar9 != iVar12 - iVar3" (identifier "iVar9") (!= "!=") (binary_expression "iVar12 - iVar3" (identifier "iVar12") (- "-") (identifier "iVar3"))) () ")")) (compound_statement "{\n                local_40 = *param_1;\nLAB_00091f08:\n                cVar11 = cVar11 + '~';\n                local_30 = uVar5;\n                goto LAB_00091f18;\n              }" ({ "{") (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" (identifier "local_40") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (labeled_statement "LAB_00091f08:\n                cVar11 = cVar11 + '~';" (statement_identifier "LAB_00091f08") (: ":") (expression_statement "cVar11 = cVar11 + '~';" (assignment_expression "cVar11 = cVar11 + '~'" (identifier "cVar11") (= "=") (binary_expression "cVar11 + '~'" (identifier "cVar11") (+ "+") (char_literal "'~'" (' "'") (character "~") (' "'")))) (; ";"))) (expression_statement "local_30 = uVar5;" (assignment_expression "local_30 = uVar5" (identifier "local_30") (= "=") (identifier "uVar5")) (; ";")) (goto_statement "goto LAB_00091f18;" (goto "goto") (statement_identifier "LAB_00091f18") (; ";")) (} "}"))) (expression_statement "local_40 = *param_1;" (assignment_expression "local_40 = *param_1" (identifier "local_40") (= "=") (pointer_expression "*param_1" (* "*") (identifier "param_1"))) (; ";")) (expression_statement "iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);" (assignment_expression "iVar12 = (*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9)" (identifier "iVar12") (= "=") (call_expression "(*(code *)PTR_memcmp_00112430)\n                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9)" (parenthesized_expression "(*(code *)PTR_memcmp_00112430)" (( "(") (pointer_expression "*(code *)PTR_memcmp_00112430" (* "*") (cast_expression "(code *)PTR_memcmp_00112430" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_memcmp_00112430"))) () ")")) (argument_list "(local_40 + local_3c + 1,local_40 + iVar3,iVar9)" (( "(") (binary_expression "local_40 + local_3c + 1" (binary_expression "local_40 + local_3c" (identifier "local_40") (+ "+") (identifier "local_3c")) (+ "+") (number_literal "1")) (, ",") (binary_expression "local_40 + iVar3" (identifier "local_40") (+ "+") (identifier "iVar3")) (, ",") (identifier "iVar9") () ")")))) (; ";")) (if_statement "if (iVar12 != 0) goto LAB_00091f08;" (if "if") (parenthesized_expression "(iVar12 != 0)" (( "(") (binary_expression "iVar12 != 0" (identifier "iVar12") (!= "!=") (number_literal "0")) () ")")) (goto_statement "goto LAB_00091f08;" (goto "goto") (statement_identifier "LAB_00091f08") (; ";"))) (expression_statement "uVar8 = uVar8 - 1;" (assignment_expression "uVar8 = uVar8 - 1" (identifier "uVar8") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";")) (expression_statement "param_3 = param_3 + 0xc;" (assignment_expression "param_3 = param_3 + 0xc" (identifier "param_3") (= "=") (binary_expression "param_3 + 0xc" (identifier "param_3") (+ "+") (number_literal "0xc"))) (; ";")) (expression_statement "iVar10 = iVar10 + 1;" (assignment_expression "iVar10 = iVar10 + 1" (identifier "iVar10") (= "=") (binary_expression "iVar10 + 1" (identifier "iVar10") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (uVar8 == 0) {\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }" (if "if") (parenthesized_expression "(uVar8 == 0)" (( "(") (binary_expression "uVar8 == 0" (identifier "uVar8") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n                cVar11 = cVar11 + '\x7f';\n                goto LAB_00091f18;\n              }" ({ "{") (expression_statement "cVar11 = cVar11 + '\x7f';" (assignment_expression "cVar11 = cVar11 + '\x7f'" (identifier "cVar11") (= "=") (binary_expression "cVar11 + '\x7f'" (identifier "cVar11") (+ "+") (char_literal "'\x7f'" (' "'") (escape_sequence "\x7f") (' "'")))) (; ";")) (goto_statement "goto LAB_00091f18;" (goto "goto") (statement_identifier "LAB_00091f18") (; ";")) (} "}"))) (} "}")) (while "while") (parenthesized_expression "(iVar10 != 0x81)" (( "(") (binary_expression "iVar10 != 0x81" (identifier "iVar10") (!= "!=") (number_literal "0x81")) () ")")) (; ";")) (expression_statement "cVar11 = -1;" (assignment_expression "cVar11 = -1" (identifier "cVar11") (= "=") (number_literal "-1")) (; ";")) (} "}")))) (} "}")))) (labeled_statement "LAB_00091f18:\n        iVar12 = 0;" (statement_identifier "LAB_00091f18") (: ":") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";"))) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(char *)(local_40 + local_3c) = cVar11;" (assignment_expression "*(char *)(local_40 + local_3c) = cVar11" (pointer_expression "*(char *)(local_40 + local_3c)" (* "*") (cast_expression "(char *)(local_40 + local_3c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(local_40 + local_3c)" (( "(") (binary_expression "local_40 + local_3c" (identifier "local_40") (+ "+") (identifier "local_3c")) () ")")))) (= "=") (identifier "cVar11")) (; ";")) (expression_statement "local_3c = param_1[1];" (assignment_expression "local_3c = param_1[1]" (identifier "local_3c") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "(*pcVar18)(param_1,0);" (call_expression "(*pcVar18)(param_1,0)" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }" (else "else") (compound_statement "{\nLAB_00091d8c:\n        iVar12 = 0;\nLAB_00091d90:\n        iVar3 = iVar3 + 1;\n        iVar9 = iVar14 - iVar15;\n        iVar10 = iVar15;\n        if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }\n      }" ({ "{") (labeled_statement "LAB_00091d8c:\n        iVar12 = 0;" (statement_identifier "LAB_00091d8c") (: ":") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";"))) (labeled_statement "LAB_00091d90:\n        iVar3 = iVar3 + 1;" (statement_identifier "LAB_00091d90") (: ":") (expression_statement "iVar3 = iVar3 + 1;" (assignment_expression "iVar3 = iVar3 + 1" (identifier "iVar3") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";"))) (expression_statement "iVar9 = iVar14 - iVar15;" (assignment_expression "iVar9 = iVar14 - iVar15" (identifier "iVar9") (= "=") (binary_expression "iVar14 - iVar15" (identifier "iVar14") (- "-") (identifier "iVar15"))) (; ";")) (expression_statement "iVar10 = iVar15;" (assignment_expression "iVar10 = iVar15" (identifier "iVar10") (= "=") (identifier "iVar15")) (; ";")) (if_statement "if (iVar3 == 0x80) {\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }" (if "if") (parenthesized_expression "(iVar3 == 0x80)" (( "(") (binary_expression "iVar3 == 0x80" (identifier "iVar3") (== "==") (number_literal "0x80")) () ")")) (compound_statement "{\n          iVar12 = 0;\n          iVar10 = 0;\n          iVar9 = 0;\n          *(undefined1 *)(*param_1 + local_3c) = 0x7f;\n          local_3c = param_1[1];\n          (*pcVar18)(param_1,0);\n          iVar3 = 0;\n        }" ({ "{") (expression_statement "iVar12 = 0;" (assignment_expression "iVar12 = 0" (identifier "iVar12") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar10 = 0;" (assignment_expression "iVar10 = 0" (identifier "iVar10") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined1 *)(*param_1 + local_3c) = 0x7f;" (assignment_expression "*(undefined1 *)(*param_1 + local_3c) = 0x7f" (pointer_expression "*(undefined1 *)(*param_1 + local_3c)" (* "*") (cast_expression "(undefined1 *)(*param_1 + local_3c)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + local_3c)" (( "(") (binary_expression "*param_1 + local_3c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "local_3c")) () ")")))) (= "=") (number_literal "0x7f")) (; ";")) (expression_statement "local_3c = param_1[1];" (assignment_expression "local_3c = param_1[1]" (identifier "local_3c") (= "=") (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]"))) (; ";")) (expression_statement "(*pcVar18)(param_1,0);" (call_expression "(*pcVar18)(param_1,0)" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "(param_1,0)" (( "(") (identifier "param_1") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "iVar3 = 0;" (assignment_expression "iVar3 = 0" (identifier "iVar3") (= "=") (number_literal "0")) (; ";")) (} "}"))) (} "}")))) (expression_statement "uVar7 = uVar8 - 1;" (assignment_expression "uVar7 = uVar8 - 1" (identifier "uVar7") (= "=") (binary_expression "uVar8 - 1" (identifier "uVar8") (- "-") (number_literal "1"))) (; ";")) (expression_statement "param_2 = uVar8;" (assignment_expression "param_2 = uVar8" (identifier "param_2") (= "=") (identifier "uVar8")) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0 < (int)uVar8)" (( "(") (binary_expression "0 < (int)uVar8" (number_literal "0") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar8 = uVar7;" (assignment_expression "uVar8 = uVar7" (identifier "uVar8") (= "=") (identifier "uVar7")) (; ";")) (if_statement "if (iVar3 == 0) {\n    param_1[1] = local_3c;\n  }\n  else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }" (if "if") (parenthesized_expression "(iVar3 == 0)" (( "(") (binary_expression "iVar3 == 0" (identifier "iVar3") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    param_1[1] = local_3c;\n  }" ({ "{") (expression_statement "param_1[1] = local_3c;" (assignment_expression "param_1[1] = local_3c" (subscript_expression "param_1[1]" (identifier "param_1") ([ "[") (number_literal "1") (] "]")) (= "=") (identifier "local_3c")) (; ";")) (} "}")) (else_clause "else {\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }" (else "else") (compound_statement "{\n    if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }\n    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;\n  }" ({ "{") (if_statement "if (0x80 < iVar3) {\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }" (if "if") (parenthesized_expression "(0x80 < iVar3)" (( "(") (binary_expression "0x80 < iVar3" (number_literal "0x80") (< "<") (identifier "iVar3")) () ")")) (compound_statement "{\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );\nLAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );\n      goto LAB_0009208c;\n    }" ({ "{") (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                );" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                )" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00111f50" (* "*") (cast_expression "(code *)PTR___assert_fail_00111f50" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00111f50"))) () ")")) (argument_list "(PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac\n                )" (( "(") (binary_expression "PTR_DAT_001112f8 + 0x58e4" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x58e4")) (, ",") (binary_expression "PTR_DAT_001112f8 + 0x5830" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x5830")) (, ",") (number_literal "0x21b") (, ",") (binary_expression "PTR_DAT_001112f8 + 0x63ac" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x63ac")) () ")"))) (; ";")) (labeled_statement "LAB_00092068:\n      (*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );" (statement_identifier "LAB_00092068") (: ":") (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                );" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                )" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00111f50" (* "*") (cast_expression "(code *)PTR___assert_fail_00111f50" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00111f50"))) () ")")) (argument_list "(PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac\n                )" (( "(") (binary_expression "PTR_DAT_001112f8 + 0x58bc" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x58bc")) (, ",") (binary_expression "PTR_DAT_001112f8 + 0x5830" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x5830")) (, ",") (number_literal "0x1cd") (, ",") (binary_expression "PTR_DAT_001112f8 + 0x63ac" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x63ac")) () ")"))) (; ";"))) (goto_statement "goto LAB_0009208c;" (goto "goto") (statement_identifier "LAB_0009208c") (; ";")) (} "}"))) (expression_statement "*(char *)(*param_1 + local_3c) = (char)iVar3 + -1;" (assignment_expression "*(char *)(*param_1 + local_3c) = (char)iVar3 + -1" (pointer_expression "*(char *)(*param_1 + local_3c)" (* "*") (cast_expression "(char *)(*param_1 + local_3c)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*param_1 + local_3c)" (( "(") (binary_expression "*param_1 + local_3c" (pointer_expression "*param_1" (* "*") (identifier "param_1")) (+ "+") (identifier "local_3c")) () ")")))) (= "=") (binary_expression "(char)iVar3 + -1" (cast_expression "(char)iVar3" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar3")) (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (if_statement "if (local_2c == *(int *)puVar20) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_2c == *(int *)puVar20)" (( "(") (binary_expression "local_2c == *(int *)puVar20" (identifier "local_2c") (== "==") (pointer_expression "*(int *)puVar20" (* "*") (cast_expression "(int *)puVar20" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "puVar20")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (labeled_statement "LAB_0009208c:\n  (*(code *)PTR___stack_chk_fail_001122c8)();" (statement_identifier "LAB_0009208c") (: ":") (expression_statement "(*(code *)PTR___stack_chk_fail_001122c8)();" (call_expression "(*(code *)PTR___stack_chk_fail_001122c8)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_001122c8)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_001122c8" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_001122c8" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_001122c8"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";"))) (labeled_statement "LAB_00092098:\n  (*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);" (statement_identifier "LAB_00092098") (: ":") (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00111f50" (* "*") (cast_expression "(code *)PTR___assert_fail_00111f50" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00111f50"))) () ")")) (argument_list "(PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac)" (( "(") (binary_expression "PTR_DAT_001112f8 + 0x58d4" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x58d4")) (, ",") (binary_expression "PTR_DAT_001112f8 + 0x5830" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x5830")) (, ",") (number_literal "0x1d8") (, ",") (binary_expression "PTR_DAT_001112f8 + 0x63ac" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x63ac")) () ")"))) (; ";"))) (labeled_statement "LAB_000920bc:\n  pcVar18 = FUN_000920e0;" (statement_identifier "LAB_000920bc") (: ":") (expression_statement "pcVar18 = FUN_000920e0;" (assignment_expression "pcVar18 = FUN_000920e0" (identifier "pcVar18") (= "=") (identifier "FUN_000920e0")) (; ";"))) (expression_statement "puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);" (assignment_expression "puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0)" (identifier "puVar4") (= "=") (cast_expression "(ushort *)(PTR_DAT_001112f8 + 0x58b0)" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(PTR_DAT_001112f8 + 0x58b0)" (( "(") (binary_expression "PTR_DAT_001112f8 + 0x58b0" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x58b0")) () ")")))) (; ";")) (expression_statement "puVar19 = PTR___assert_fail_00111f50;" (assignment_expression "puVar19 = PTR___assert_fail_00111f50" (identifier "puVar19") (= "=") (identifier "PTR___assert_fail_00111f50")) (; ";")) (expression_statement "(*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);" (call_expression "(*(code *)PTR___assert_fail_00111f50)\n            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac)" (parenthesized_expression "(*(code *)PTR___assert_fail_00111f50)" (( "(") (pointer_expression "*(code *)PTR___assert_fail_00111f50" (* "*") (cast_expression "(code *)PTR___assert_fail_00111f50" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___assert_fail_00111f50"))) () ")")) (argument_list "(puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac)" (( "(") (identifier "puVar4") (, ",") (binary_expression "PTR_DAT_001112f8 + 0x5830" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x5830")) (, ",") (number_literal "0x1c7") (, ",") (binary_expression "PTR_DAT_001112f8 + 0x63ac" (identifier "PTR_DAT_001112f8") (+ "+") (number_literal "0x63ac")) () ")"))) (; ";")) (expression_statement "puVar20 = puVar19 + 0x871d0;" (assignment_expression "puVar20 = puVar19 + 0x871d0" (identifier "puVar20") (= "=") (binary_expression "puVar19 + 0x871d0" (identifier "puVar19") (+ "+") (number_literal "0x871d0"))) (; ";")) (expression_statement "piVar13 = *(int **)(puVar19 + 0x80550);" (assignment_expression "piVar13 = *(int **)(puVar19 + 0x80550)" (identifier "piVar13") (= "=") (pointer_expression "*(int **)(puVar19 + 0x80550)" (* "*") (cast_expression "(int **)(puVar19 + 0x80550)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x80550)" (( "(") (binary_expression "puVar19 + 0x80550" (identifier "puVar19") (+ "+") (number_literal "0x80550")) () ")"))))) (; ";")) (expression_statement "uVar7 = *(uint *)(puVar4 + 2);" (assignment_expression "uVar7 = *(uint *)(puVar4 + 2)" (identifier "uVar7") (= "=") (pointer_expression "*(uint *)(puVar4 + 2)" (* "*") (cast_expression "(uint *)(puVar4 + 2)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")"))))) (; ";")) (expression_statement "uStack_90 = 0;" (assignment_expression "uStack_90 = 0" (identifier "uStack_90") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_8c = 0;" (assignment_expression "iStack_8c = 0" (identifier "iStack_8c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_88 = 0;" (assignment_expression "uStack_88 = 0" (identifier "uStack_88") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_84 = *piVar13;" (assignment_expression "iStack_84 = *piVar13" (identifier "iStack_84") (= "=") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) (; ";")) (expression_statement "iStack_7c = param_3;" (assignment_expression "iStack_7c = param_3" (identifier "iStack_7c") (= "=") (identifier "param_3")) (; ";")) (expression_statement "uStack_78 = uVar8;" (assignment_expression "uStack_78 = uVar8" (identifier "uStack_78") (= "=") (identifier "uVar8")) (; ";")) (expression_statement "iStack_74 = iVar9;" (assignment_expression "iStack_74 = iVar9" (identifier "iStack_74") (= "=") (identifier "iVar9")) (; ";")) (expression_statement "iStack_70 = iVar10;" (assignment_expression "iStack_70 = iVar10" (identifier "iStack_70") (= "=") (identifier "iVar10")) (; ";")) (expression_statement "iStack_6c = iVar12;" (assignment_expression "iStack_6c = iVar12" (identifier "iStack_6c") (= "=") (identifier "iVar12")) (; ";")) (expression_statement "uStack_68 = param_2;" (assignment_expression "uStack_68 = param_2" (identifier "uStack_68") (= "=") (identifier "param_2")) (; ";")) (expression_statement "pcStack_64 = pcVar18;" (assignment_expression "pcStack_64 = pcVar18" (identifier "pcStack_64") (= "=") (identifier "pcVar18")) (; ";")) (for_statement "for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" (for "for") (( "(") (; ";") (binary_expression "0x7f < (int)uVar7" (number_literal "0x7f") (< "<") (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7"))) (; ";") (assignment_expression "uVar7 = (int)uVar7 >> 7" (identifier "uVar7") (= "=") (binary_expression "(int)uVar7 >> 7" (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "7"))) () ")") (compound_statement "{\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" ({ "{") (expression_statement "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" (identifier "FUN_0008fe74") (argument_list "(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" (( "(") (pointer_expression "&uStack_90" (& "&") (identifier "uStack_90")) (, ",") (binary_expression "(uVar7 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar7 | 0xffffff80)" (( "(") (binary_expression "uVar7 | 0xffffff80" (identifier "uVar7") (| "|") (number_literal "0xffffff80")) () ")")) (& "&") (number_literal "0xff")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0008fe74(&uStack_90,uVar7 & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,uVar7 & 0xff)" (identifier "FUN_0008fe74") (argument_list "(&uStack_90,uVar7 & 0xff)" (( "(") (pointer_expression "&uStack_90" (& "&") (identifier "uStack_90")) (, ",") (binary_expression "uVar7 & 0xff" (identifier "uVar7") (& "&") (number_literal "0xff")) () ")"))) (; ";")) (for_statement "for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" (for "for") (( "(") (assignment_expression "uVar7 = (uint)*puVar4" (identifier "uVar7") (= "=") (binary_expression "(uint)*puVar4" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (identifier "puVar4"))) (; ";") (binary_expression "0x7f < uVar7" (number_literal "0x7f") (< "<") (identifier "uVar7")) (; ";") (assignment_expression "uVar7 = (int)uVar7 >> 7" (identifier "uVar7") (= "=") (binary_expression "(int)uVar7 >> 7" (cast_expression "(int)uVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar7")) (>> ">>") (number_literal "7"))) () ")") (compound_statement "{\n    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);\n  }" ({ "{") (expression_statement "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" (identifier "FUN_0008fe74") (argument_list "(&uStack_90,(uVar7 | 0xffffff80) & 0xff)" (( "(") (pointer_expression "&uStack_90" (& "&") (identifier "uStack_90")) (, ",") (binary_expression "(uVar7 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar7 | 0xffffff80)" (( "(") (binary_expression "uVar7 | 0xffffff80" (identifier "uVar7") (| "|") (number_literal "0xffffff80")) () ")")) (& "&") (number_literal "0xff")) () ")"))) (; ";")) (} "}"))) (expression_statement "FUN_0008fe74(&uStack_90,uVar7 & 0xff);" (call_expression "FUN_0008fe74(&uStack_90,uVar7 & 0xff)" (identifier "FUN_0008fe74") (argument_list "(&uStack_90,uVar7 & 0xff)" (( "(") (pointer_expression "&uStack_90" (& "&") (identifier "uStack_90")) (, ",") (binary_expression "uVar7 & 0xff" (identifier "uVar7") (& "&") (number_literal "0xff")) () ")"))) (; ";")) (expression_statement "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58);" (call_expression "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58)" (identifier "FUN_00091cb8") (argument_list "(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + 0x58)" (( "(") (pointer_expression "&uStack_90" (& "&") (identifier "uStack_90")) (, ",") (pointer_expression "*(undefined4 *)(puVar4 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar4 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(puVar4 + 10)" (* "*") (cast_expression "(undefined4 *)(puVar4 + 10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 10)" (( "(") (binary_expression "puVar4 + 10" (identifier "puVar4") (+ "+") (number_literal "10")) () ")")))) (, ",") (binary_expression "*(int *)(puVar19 + 0x7f9f8) + 0x58" (pointer_expression "*(int *)(puVar19 + 0x7f9f8)" (* "*") (cast_expression "(int *)(puVar19 + 0x7f9f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x7f9f8)" (( "(") (binary_expression "puVar19 + 0x7f9f8" (identifier "puVar19") (+ "+") (number_literal "0x7f9f8")) () ")")))) (+ "+") (number_literal "0x58")) () ")"))) (; ";")) (expression_statement "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4);" (call_expression "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4)" (identifier "FUN_00091cb8") (argument_list "(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),\n               *(int *)(puVar19 + 0x7f9f8) + -0xd4)" (( "(") (pointer_expression "&uStack_90" (& "&") (identifier "uStack_90")) (, ",") (pointer_expression "*(undefined4 *)(puVar4 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar4 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(puVar4 + 10)" (* "*") (cast_expression "(undefined4 *)(puVar4 + 10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 10)" (( "(") (binary_expression "puVar4 + 10" (identifier "puVar4") (+ "+") (number_literal "10")) () ")")))) (, ",") (binary_expression "*(int *)(puVar19 + 0x7f9f8) + -0xd4" (pointer_expression "*(int *)(puVar19 + 0x7f9f8)" (* "*") (cast_expression "(int *)(puVar19 + 0x7f9f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x7f9f8)" (( "(") (binary_expression "puVar19 + 0x7f9f8" (identifier "puVar19") (+ "+") (number_literal "0x7f9f8")) () ")")))) (+ "+") (number_literal "-0xd4")) () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;" (assignment_expression "iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138" (identifier "iVar9") (= "=") (binary_expression "*(int *)(puVar19 + 0x7f9f8) + 0x1138" (pointer_expression "*(int *)(puVar19 + 0x7f9f8)" (* "*") (cast_expression "(int *)(puVar19 + 0x7f9f8)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar19 + 0x7f9f8)" (( "(") (binary_expression "puVar19 + 0x7f9f8" (identifier "puVar19") (+ "+") (number_literal "0x7f9f8")) () ")")))) (+ "+") (number_literal "0x1138"))) (; ";")) (expression_statement "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));" (call_expression "FUN_00091cb8(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10))" (identifier "FUN_00091cb8") (argument_list "(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10))" (( "(") (pointer_expression "&uStack_90" (& "&") (identifier "uStack_90")) (, ",") (pointer_expression "*(undefined4 *)(puVar4 + 2)" (* "*") (cast_expression "(undefined4 *)(puVar4 + 2)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 2)" (( "(") (binary_expression "puVar4 + 2" (identifier "puVar4") (+ "+") (number_literal "2")) () ")")))) (, ",") (pointer_expression "*(undefined4 *)(puVar4 + 10)" (* "*") (cast_expression "(undefined4 *)(puVar4 + 10)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(puVar4 + 10)" (( "(") (binary_expression "puVar4 + 10" (identifier "puVar4") (+ "+") (number_literal "10")) () ")")))) () ")"))) (; ";")) (expression_statement "iVar3 = 1;" (assignment_expression "iVar3 = 1" (identifier "iVar3") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar10 = iStack_8c;" (assignment_expression "iVar10 = iStack_8c" (identifier "iVar10") (= "=") (identifier "iStack_8c")) (; ";")) (expression_statement "(**(code **)(puVar19 + 0x7f310))(uStack_90);" (call_expression "(**(code **)(puVar19 + 0x7f310))(uStack_90)" (parenthesized_expression "(**(code **)(puVar19 + 0x7f310))" (( "(") (pointer_expression "**(code **)(puVar19 + 0x7f310)" (* "*") (pointer_expression "*(code **)(puVar19 + 0x7f310)" (* "*") (cast_expression "(code **)(puVar19 + 0x7f310)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x7f310)" (( "(") (binary_expression "puVar19 + 0x7f310" (identifier "puVar19") (+ "+") (number_literal "0x7f310")) () ")"))))) () ")")) (argument_list "(uStack_90)" (( "(") (identifier "uStack_90") () ")"))) (; ";")) (if_statement "if (iStack_84 == *piVar13) {\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_84 == *piVar13)" (( "(") (binary_expression "iStack_84 == *piVar13" (identifier "iStack_84") (== "==") (pointer_expression "*piVar13" (* "*") (identifier "piVar13"))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar18 = *(code **)(puVar19 + 0x801e8);" (assignment_expression "pcVar18 = *(code **)(puVar19 + 0x801e8)" (identifier "pcVar18") (= "=") (pointer_expression "*(code **)(puVar19 + 0x801e8)" (* "*") (cast_expression "(code **)(puVar19 + 0x801e8)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar19 + 0x801e8)" (( "(") (binary_expression "puVar19 + 0x801e8" (identifier "puVar19") (+ "+") (number_literal "0x801e8")) () ")"))))) (; ";")) (expression_statement "iVar12 = iStack_84;" (assignment_expression "iVar12 = iStack_84" (identifier "iVar12") (= "=") (identifier "iStack_84")) (; ";")) (expression_statement "(*pcVar18)();" (call_expression "(*pcVar18)()" (parenthesized_expression "(*pcVar18)" (( "(") (pointer_expression "*pcVar18" (* "*") (identifier "pcVar18")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar10 == 0) {\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }\n  else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }" (if "if") (parenthesized_expression "(iVar10 == 0)" (( "(") (binary_expression "iVar10 == 0" (identifier "iVar10") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    iVar14 = iVar3;\n    if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }\n  }" ({ "{") (expression_statement "iVar14 = iVar3;" (assignment_expression "iVar14 = iVar3" (identifier "iVar14") (= "=") (identifier "iVar3")) (; ";")) (if_statement "if (*(int *)(iVar12 + 0x1a4) != 0) {\n      puVar20 = (undefined *)0x0;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x1a4) != 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0x1a4) != 0" (pointer_expression "*(int *)(iVar12 + 0x1a4)" (* "*") (cast_expression "(int *)(iVar12 + 0x1a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x1a4)" (( "(") (binary_expression "iVar12 + 0x1a4" (identifier "iVar12") (+ "+") (number_literal "0x1a4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      puVar20 = (undefined *)0x0;\n    }" ({ "{") (expression_statement "puVar20 = (undefined *)0x0;" (assignment_expression "puVar20 = (undefined *)0x0" (identifier "puVar20") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }" (else "else") (compound_statement "{\n    puVar20 = (undefined *)0x0;\n    iVar14 = iVar3 - iVar10;\n  }" ({ "{") (expression_statement "puVar20 = (undefined *)0x0;" (assignment_expression "puVar20 = (undefined *)0x0" (identifier "puVar20") (= "=") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "iVar14 = iVar3 - iVar10;" (assignment_expression "iVar14 = iVar3 - iVar10" (identifier "iVar14") (= "=") (binary_expression "iVar3 - iVar10" (identifier "iVar3") (- "-") (identifier "iVar10"))) (; ";")) (} "}")))) (expression_statement "iVar14 = iVar14 + 1;" (assignment_expression "iVar14 = iVar14 + 1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + 1" (identifier "iVar14") (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (iVar9 < 0) {\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }\n  else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(iVar9 < 0)" (( "(") (binary_expression "iVar9 < 0" (identifier "iVar9") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }\n    for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }\n  }" ({ "{") (if_statement "if (-iVar9 <= iVar14) {\n      iVar14 = -iVar9;\n    }" (if "if") (parenthesized_expression "(-iVar9 <= iVar14)" (( "(") (binary_expression "-iVar9 <= iVar14" (unary_expression "-iVar9" (- "-") (identifier "iVar9")) (<= "<=") (identifier "iVar14")) () ")")) (compound_statement "{\n      iVar14 = -iVar9;\n    }" ({ "{") (expression_statement "iVar14 = -iVar9;" (assignment_expression "iVar14 = -iVar9" (identifier "iVar14") (= "=") (unary_expression "-iVar9" (- "-") (identifier "iVar9"))) (; ";")) (} "}"))) (for_statement "for (; 0 < iVar14; iVar14 = iVar14 + -1) {\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "0 < iVar14" (number_literal "0") (< "<") (identifier "iVar14")) (; ";") (assignment_expression "iVar14 = iVar14 + -1" (identifier "iVar14") (= "=") (binary_expression "iVar14 + -1" (identifier "iVar14") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      iVar9 = 0;\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);\n      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n      if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }\n      uVar5 = *(undefined4 *)(iVar12 + 8);\n      *puVar2 = 0;\n      addpos234(uVar5,puVar2,iVar10);\n      iVar9 = *(int *)(iVar12 + 0xe54);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }\n      iVar9 = *(int *)(iVar12 + 0xe5c);\n      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }\n    }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (expression_statement "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);" (assignment_expression "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3)" (identifier "puVar2") (= "=") (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "delpos234(*(undefined4 *)(iVar12 + 8),iVar3)" (identifier "delpos234") (argument_list "(*(undefined4 *)(iVar12 + 8),iVar3)" (( "(") (pointer_expression "*(undefined4 *)(iVar12 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "iVar3") () ")"))))) (; ";")) (expression_statement "FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));" (call_expression "FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" (identifier "FUN_00090b64") (argument_list "(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" (( "(") (identifier "iVar12") (, ",") (identifier "puVar2") (, ",") (pointer_expression "*(undefined4 *)(iVar12 + 300)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 300)" (( "(") (binary_expression "iVar12 + 300" (identifier "iVar12") (+ "+") (number_literal "300")) () ")")))) () ")"))) (; ";")) (if_statement "if (0 < *(int *)(iVar12 + 300)) {\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar12 + 300))" (( "(") (binary_expression "0 < *(int *)(iVar12 + 300)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar12 + 300)" (* "*") (cast_expression "(int *)(iVar12 + 300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 300)" (( "(") (binary_expression "iVar12 + 300" (identifier "iVar12") (+ "+") (number_literal "300")) () ")"))))) () ")")) (compound_statement "{\n        do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));\n      }" ({ "{") (do_statement "do {\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar12 + 300));" (do "do") (compound_statement "{\n          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);\n          iVar9 = iVar9 + 1;\n        }" ({ "{") (expression_statement "FUN_00091070(puVar2,iVar9,iVar12 + 0x54);" (call_expression "FUN_00091070(puVar2,iVar9,iVar12 + 0x54)" (identifier "FUN_00091070") (argument_list "(puVar2,iVar9,iVar12 + 0x54)" (( "(") (identifier "puVar2") (, ",") (identifier "iVar9") (, ",") (binary_expression "iVar12 + 0x54" (identifier "iVar12") (+ "+") (number_literal "0x54")) () ")"))) (; ";")) (expression_statement "iVar9 = iVar9 + 1;" (assignment_expression "iVar9 = iVar9 + 1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar9 < *(int *)(iVar12 + 300))" (( "(") (binary_expression "iVar9 < *(int *)(iVar12 + 300)" (identifier "iVar9") (< "<") (pointer_expression "*(int *)(iVar12 + 300)" (* "*") (cast_expression "(int *)(iVar12 + 300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 300)" (( "(") (binary_expression "iVar12 + 300" (identifier "iVar12") (+ "+") (number_literal "300")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "addpos234(uVar5,puVar2,iVar10);" (call_expression "addpos234(uVar5,puVar2,iVar10)" (identifier "addpos234") (argument_list "(uVar5,puVar2,iVar10)" (( "(") (identifier "uVar5") (, ",") (identifier "puVar2") (, ",") (identifier "iVar10") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar12 + 0xe54);" (assignment_expression "iVar9 = *(int *)(iVar12 + 0xe54)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar12 + 0xe54)" (* "*") (cast_expression "(int *)(iVar12 + 0xe54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe54)" (( "(") (binary_expression "iVar12 + 0xe54" (identifier "iVar12") (+ "+") (number_literal "0xe54")) () ")"))))) (; ";")) (if_statement "if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }" (if "if") (parenthesized_expression "((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3))" (( "(") (binary_expression "(iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)" (parenthesized_expression "(iVar10 <= iVar9)" (( "(") (binary_expression "iVar10 <= iVar9" (identifier "iVar10") (<= "<=") (identifier "iVar9")) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = iVar9 + 1, iVar9 <= iVar3)" (( "(") (comma_expression "iVar15 = iVar9 + 1, iVar9 <= iVar3" (assignment_expression "iVar15 = iVar9 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (, ",") (binary_expression "iVar9 <= iVar3" (identifier "iVar9") (<= "<=") (identifier "iVar3"))) () ")"))) () ")")) (compound_statement "{\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }\n        *(int *)(iVar12 + 0xe54) = iVar15;\n      }" ({ "{") (if_statement "if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }" (if "if") (parenthesized_expression "(iVar3 < iVar15)" (( "(") (binary_expression "iVar3 < iVar15" (identifier "iVar3") (< "<") (identifier "iVar15")) () ")")) (compound_statement "{\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe58) = 0;\n        }" ({ "{") (expression_statement "iVar15 = iVar3 + 1;" (assignment_expression "iVar15 = iVar3 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar12 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe58)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0xe58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe58)" (( "(") (binary_expression "iVar12 + 0xe58" (identifier "iVar12") (+ "+") (number_literal "0xe58")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar12 + 0xe54) = iVar15;" (assignment_expression "*(int *)(iVar12 + 0xe54) = iVar15" (pointer_expression "*(int *)(iVar12 + 0xe54)" (* "*") (cast_expression "(int *)(iVar12 + 0xe54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe54)" (( "(") (binary_expression "iVar12 + 0xe54" (identifier "iVar12") (+ "+") (number_literal "0xe54")) () ")")))) (= "=") (identifier "iVar15")) (; ";")) (} "}"))) (expression_statement "iVar9 = *(int *)(iVar12 + 0xe5c);" (assignment_expression "iVar9 = *(int *)(iVar12 + 0xe5c)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar12 + 0xe5c)" (* "*") (cast_expression "(int *)(iVar12 + 0xe5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe5c)" (( "(") (binary_expression "iVar12 + 0xe5c" (identifier "iVar12") (+ "+") (number_literal "0xe5c")) () ")"))))) (; ";")) (if_statement "if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }" (if "if") (parenthesized_expression "((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3))" (( "(") (binary_expression "(iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)" (parenthesized_expression "(iVar10 <= iVar9)" (( "(") (binary_expression "iVar10 <= iVar9" (identifier "iVar10") (<= "<=") (identifier "iVar9")) () ")")) (&& "&&") (parenthesized_expression "(iVar15 = iVar9 + 1, iVar9 <= iVar3)" (( "(") (comma_expression "iVar15 = iVar9 + 1, iVar9 <= iVar3" (assignment_expression "iVar15 = iVar9 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (, ",") (binary_expression "iVar9 <= iVar3" (identifier "iVar9") (<= "<=") (identifier "iVar3"))) () ")"))) () ")")) (compound_statement "{\n        if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }\n        *(int *)(iVar12 + 0xe5c) = iVar15;\n      }" ({ "{") (if_statement "if (iVar3 < iVar15) {\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }" (if "if") (parenthesized_expression "(iVar3 < iVar15)" (( "(") (binary_expression "iVar3 < iVar15" (identifier "iVar3") (< "<") (identifier "iVar15")) () ")")) (compound_statement "{\n          iVar15 = iVar3 + 1;\n          *(undefined4 *)(iVar12 + 0xe60) = 0;\n        }" ({ "{") (expression_statement "iVar15 = iVar3 + 1;" (assignment_expression "iVar15 = iVar3 + 1" (identifier "iVar15") (= "=") (binary_expression "iVar3 + 1" (identifier "iVar3") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar12 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe60)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0xe60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe60)" (( "(") (binary_expression "iVar12 + 0xe60" (identifier "iVar12") (+ "+") (number_literal "0xe60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (expression_statement "*(int *)(iVar12 + 0xe5c) = iVar15;" (assignment_expression "*(int *)(iVar12 + 0xe5c) = iVar15" (pointer_expression "*(int *)(iVar12 + 0xe5c)" (* "*") (cast_expression "(int *)(iVar12 + 0xe5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe5c)" (( "(") (binary_expression "iVar12 + 0xe5c" (identifier "iVar12") (+ "+") (number_literal "0xe5c")) () ")")))) (= "=") (identifier "iVar15")) (; ";")) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    iVar15 = *(int *)(pcVar18 + 0x7f84c);\n    if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }\n    for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }\n  }" ({ "{") (expression_statement "iVar15 = *(int *)(pcVar18 + 0x7f84c);" (assignment_expression "iVar15 = *(int *)(pcVar18 + 0x7f84c)" (identifier "iVar15") (= "=") (pointer_expression "*(int *)(pcVar18 + 0x7f84c)" (* "*") (cast_expression "(int *)(pcVar18 + 0x7f84c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar18 + 0x7f84c)" (( "(") (binary_expression "pcVar18 + 0x7f84c" (identifier "pcVar18") (+ "+") (number_literal "0x7f84c")) () ")"))))) (; ";")) (if_statement "if (iVar14 <= iVar9) {\n      iVar9 = iVar14;\n    }" (if "if") (parenthesized_expression "(iVar14 <= iVar9)" (( "(") (binary_expression "iVar14 <= iVar9" (identifier "iVar14") (<= "<=") (identifier "iVar9")) () ")")) (compound_statement "{\n      iVar9 = iVar14;\n    }" ({ "{") (expression_statement "iVar9 = iVar14;" (assignment_expression "iVar9 = iVar14" (identifier "iVar9") (= "=") (identifier "iVar14")) (; ";")) (} "}"))) (for_statement "for (; 0 < iVar9; iVar9 = iVar9 + -1) {\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "0 < iVar9" (number_literal "0") (< "<") (identifier "iVar9")) (; ";") (assignment_expression "iVar9 = iVar9 + -1" (identifier "iVar9") (= "=") (binary_expression "iVar9 + -1" (identifier "iVar9") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);\n      iVar14 = iVar10;\n      if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }\nLAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);" (assignment_expression "puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10)" (identifier "puVar2") (= "=") (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "delpos234(*(undefined4 *)(iVar12 + 8),iVar10)" (identifier "delpos234") (argument_list "(*(undefined4 *)(iVar12 + 8),iVar10)" (( "(") (pointer_expression "*(undefined4 *)(iVar12 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "iVar10") () ")"))))) (; ";")) (expression_statement "iVar14 = iVar10;" (assignment_expression "iVar14 = iVar10" (identifier "iVar14") (= "=") (identifier "iVar10")) (; ";")) (if_statement "if (puVar20 == (undefined *)0x0) {\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }\n      else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }" (if "if") (parenthesized_expression "(puVar20 == (undefined *)0x0)" (( "(") (binary_expression "puVar20 == (undefined *)0x0" (identifier "puVar20") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;\n        uVar5 = *(undefined4 *)(iVar12 + 8);\n        *puVar2 = 0;\n        addpos234(uVar5,puVar2,iVar3);\n      }" ({ "{") (expression_statement "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));" (call_expression "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" (parenthesized_expression "(*(code *)(iVar15 + 0xb64))" (( "(") (pointer_expression "*(code *)(iVar15 + 0xb64)" (* "*") (cast_expression "(code *)(iVar15 + 0xb64)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xb64)" (( "(") (binary_expression "iVar15 + 0xb64" (identifier "iVar15") (+ "+") (number_literal "0xb64")) () ")")))) () ")")) (argument_list "(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" (( "(") (identifier "iVar12") (, ",") (identifier "puVar2") (, ",") (pointer_expression "*(undefined4 *)(iVar12 + 300)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 300)" (( "(") (binary_expression "iVar12 + 300" (identifier "iVar12") (+ "+") (number_literal "300")) () ")")))) () ")"))) (; ";")) (if_statement "if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;" (if "if") (parenthesized_expression "(0 < *(int *)(iVar12 + 300))" (( "(") (binary_expression "0 < *(int *)(iVar12 + 300)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar12 + 300)" (* "*") (cast_expression "(int *)(iVar12 + 300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 300)" (( "(") (binary_expression "iVar12 + 300" (identifier "iVar12") (+ "+") (number_literal "300")) () ")"))))) () ")")) (goto_statement "goto LAB_00092364;" (goto "goto") (statement_identifier "LAB_00092364") (; ";"))) (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "addpos234(uVar5,puVar2,iVar3);" (call_expression "addpos234(uVar5,puVar2,iVar3)" (identifier "addpos234") (argument_list "(uVar5,puVar2,iVar3)" (( "(") (identifier "uVar5") (, ",") (identifier "puVar2") (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}")) (else_clause "else {\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }" (else "else") (compound_statement "{\n        if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }\n        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));\n        if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }\n        iVar14 = -*(int *)(iVar12 + 0x130);\n      }" ({ "{") (if_statement "if (0 < *(int *)(iVar12 + 0x130)) {\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar12 + 0x130))" (( "(") (binary_expression "0 < *(int *)(iVar12 + 0x130)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar12 + 0x130)" (* "*") (cast_expression "(int *)(iVar12 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x130)" (( "(") (binary_expression "iVar12 + 0x130" (identifier "iVar12") (+ "+") (number_literal "0x130")) () ")"))))) () ")")) (compound_statement "{\n          iVar16 = count234(*(undefined4 *)(iVar12 + 4));\n          if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }\n          uVar17 = *(undefined4 *)(iVar12 + 4);\n          uVar5 = FUN_000920e0(puVar2);\n          addpos234(uVar17,uVar5,iVar16);\n          iVar16 = *(int *)(iVar12 + 0x10);\n          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }\n        }" ({ "{") (expression_statement "iVar16 = count234(*(undefined4 *)(iVar12 + 4));" (assignment_expression "iVar16 = count234(*(undefined4 *)(iVar12 + 4))" (identifier "iVar16") (= "=") (call_expression "count234(*(undefined4 *)(iVar12 + 4))" (identifier "count234") (argument_list "(*(undefined4 *)(iVar12 + 4))" (( "(") (pointer_expression "*(undefined4 *)(iVar12 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (if_statement "if (*(int *)(iVar12 + 0x130) == iVar16) {\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }\n          else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0x130) == iVar16)" (( "(") (binary_expression "*(int *)(iVar12 + 0x130) == iVar16" (pointer_expression "*(int *)(iVar12 + 0x130)" (* "*") (cast_expression "(int *)(iVar12 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x130)" (( "(") (binary_expression "iVar12 + 0x130" (identifier "iVar12") (+ "+") (number_literal "0x130")) () ")")))) (== "==") (identifier "iVar16")) () ")")) (compound_statement "{\n            iVar16 = iVar16 + -1;\n            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);\n            (**(code **)(pcVar18 + 0x7f064))(uVar5);\n          }" ({ "{") (expression_statement "iVar16 = iVar16 + -1;" (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);" (assignment_expression "uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0)" (identifier "uVar5") (= "=") (call_expression "delpos234(*(undefined4 *)(iVar12 + 4),0)" (identifier "delpos234") (argument_list "(*(undefined4 *)(iVar12 + 4),0)" (( "(") (pointer_expression "*(undefined4 *)(iVar12 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "(**(code **)(pcVar18 + 0x7f064))(uVar5);" (call_expression "(**(code **)(pcVar18 + 0x7f064))(uVar5)" (parenthesized_expression "(**(code **)(pcVar18 + 0x7f064))" (( "(") (pointer_expression "**(code **)(pcVar18 + 0x7f064)" (* "*") (pointer_expression "*(code **)(pcVar18 + 0x7f064)" (* "*") (cast_expression "(code **)(pcVar18 + 0x7f064)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar18 + 0x7f064)" (( "(") (binary_expression "pcVar18 + 0x7f064" (identifier "pcVar18") (+ "+") (number_literal "0x7f064")) () ")"))))) () ")")) (argument_list "(uVar5)" (( "(") (identifier "uVar5") () ")"))) (; ";")) (} "}")) (else_clause "else {\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }" (else "else") (compound_statement "{\n            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;\n          }" ({ "{") (expression_statement "*(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;" (assignment_expression "*(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1" (pointer_expression "*(int *)(iVar12 + 0x14)" (* "*") (cast_expression "(int *)(iVar12 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x14)" (( "(") (binary_expression "iVar12 + 0x14" (identifier "iVar12") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(int *)(iVar12 + 0x14) + 1" (pointer_expression "*(int *)(iVar12 + 0x14)" (* "*") (cast_expression "(int *)(iVar12 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x14)" (( "(") (binary_expression "iVar12 + 0x14" (identifier "iVar12") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "uVar17 = *(undefined4 *)(iVar12 + 4);" (assignment_expression "uVar17 = *(undefined4 *)(iVar12 + 4)" (identifier "uVar17") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 4)" (( "(") (binary_expression "iVar12 + 4" (identifier "iVar12") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar5 = FUN_000920e0(puVar2);" (assignment_expression "uVar5 = FUN_000920e0(puVar2)" (identifier "uVar5") (= "=") (call_expression "FUN_000920e0(puVar2)" (identifier "FUN_000920e0") (argument_list "(puVar2)" (( "(") (identifier "puVar2") () ")")))) (; ";")) (expression_statement "addpos234(uVar17,uVar5,iVar16);" (call_expression "addpos234(uVar17,uVar5,iVar16)" (identifier "addpos234") (argument_list "(uVar17,uVar5,iVar16)" (( "(") (identifier "uVar17") (, ",") (identifier "uVar5") (, ",") (identifier "iVar16") () ")"))) (; ";")) (expression_statement "iVar16 = *(int *)(iVar12 + 0x10);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0x10)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar12 + 0x10)" (* "*") (cast_expression "(int *)(iVar12 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }" (if "if") (parenthesized_expression "((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0))" (( "(") (binary_expression "(-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)" (parenthesized_expression "(-*(int *)(iVar12 + 0x130) < iVar16)" (( "(") (binary_expression "-*(int *)(iVar12 + 0x130) < iVar16" (unary_expression "-*(int *)(iVar12 + 0x130)" (- "-") (pointer_expression "*(int *)(iVar12 + 0x130)" (* "*") (cast_expression "(int *)(iVar12 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x130)" (( "(") (binary_expression "iVar12 + 0x130" (identifier "iVar12") (+ "+") (number_literal "0x130")) () ")"))))) (< "<") (identifier "iVar16")) () ")")) (&& "&&") (parenthesized_expression "(iVar16 < 0)" (( "(") (binary_expression "iVar16 < 0" (identifier "iVar16") (< "<") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            *(int *)(iVar12 + 0x10) = iVar16 + -1;\n          }" ({ "{") (expression_statement "*(int *)(iVar12 + 0x10) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0x10) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0x10)" (* "*") (cast_expression "(int *)(iVar12 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x10)" (( "(") (binary_expression "iVar12 + 0x10" (identifier "iVar12") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));" (call_expression "(*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" (parenthesized_expression "(*(code *)(iVar15 + 0xb64))" (( "(") (pointer_expression "*(code *)(iVar15 + 0xb64)" (* "*") (cast_expression "(code *)(iVar15 + 0xb64)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar15 + 0xb64)" (( "(") (binary_expression "iVar15 + 0xb64" (identifier "iVar15") (+ "+") (number_literal "0xb64")) () ")")))) () ")")) (argument_list "(iVar12,puVar2,*(undefined4 *)(iVar12 + 300))" (( "(") (identifier "iVar12") (, ",") (identifier "puVar2") (, ",") (pointer_expression "*(undefined4 *)(iVar12 + 300)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 300)" (( "(") (binary_expression "iVar12 + 300" (identifier "iVar12") (+ "+") (number_literal "300")) () ")")))) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar12 + 300) < 1) {\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }\n        else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 300) < 1)" (( "(") (binary_expression "*(int *)(iVar12 + 300) < 1" (pointer_expression "*(int *)(iVar12 + 300)" (* "*") (cast_expression "(int *)(iVar12 + 300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 300)" (( "(") (binary_expression "iVar12 + 300" (identifier "iVar12") (+ "+") (number_literal "300")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n        }" ({ "{") (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "addpos234(uVar5,puVar2,iVar3);" (call_expression "addpos234(uVar5,puVar2,iVar3)" (identifier "addpos234") (argument_list "(uVar5,puVar2,iVar3)" (( "(") (identifier "uVar5") (, ",") (identifier "puVar2") (, ",") (identifier "iVar3") () ")"))) (; ";")) (} "}")) (else_clause "else {\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }" (else "else") (compound_statement "{\nLAB_00092364:\n          iVar16 = 0;\n          do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));\n          uVar5 = *(undefined4 *)(iVar12 + 8);\n          *puVar2 = 0;\n          addpos234(uVar5,puVar2,iVar3);\n          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;\n        }" ({ "{") (labeled_statement "LAB_00092364:\n          iVar16 = 0;" (statement_identifier "LAB_00092364") (: ":") (expression_statement "iVar16 = 0;" (assignment_expression "iVar16 = 0" (identifier "iVar16") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          } while (iVar16 < *(int *)(iVar12 + 300));" (do "do") (compound_statement "{\n            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);\n            iVar16 = iVar16 + 1;\n          }" ({ "{") (expression_statement "FUN_00091070(puVar2,iVar16,iVar12 + 0x54);" (call_expression "FUN_00091070(puVar2,iVar16,iVar12 + 0x54)" (identifier "FUN_00091070") (argument_list "(puVar2,iVar16,iVar12 + 0x54)" (( "(") (identifier "puVar2") (, ",") (identifier "iVar16") (, ",") (binary_expression "iVar12 + 0x54" (identifier "iVar12") (+ "+") (number_literal "0x54")) () ")"))) (; ";")) (expression_statement "iVar16 = iVar16 + 1;" (assignment_expression "iVar16 = iVar16 + 1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + 1" (identifier "iVar16") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar16 < *(int *)(iVar12 + 300))" (( "(") (binary_expression "iVar16 < *(int *)(iVar12 + 300)" (identifier "iVar16") (< "<") (pointer_expression "*(int *)(iVar12 + 300)" (* "*") (cast_expression "(int *)(iVar12 + 300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 300)" (( "(") (binary_expression "iVar12 + 300" (identifier "iVar12") (+ "+") (number_literal "300")) () ")"))))) () ")")) (; ";")) (expression_statement "uVar5 = *(undefined4 *)(iVar12 + 8);" (assignment_expression "uVar5 = *(undefined4 *)(iVar12 + 8)" (identifier "uVar5") (= "=") (pointer_expression "*(undefined4 *)(iVar12 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 8)" (( "(") (binary_expression "iVar12 + 8" (identifier "iVar12") (+ "+") (number_literal "8")) () ")"))))) (; ";")) (expression_statement "*puVar2 = 0;" (assignment_expression "*puVar2 = 0" (pointer_expression "*puVar2" (* "*") (identifier "puVar2")) (= "=") (number_literal "0")) (; ";")) (expression_statement "addpos234(uVar5,puVar2,iVar3);" (call_expression "addpos234(uVar5,puVar2,iVar3)" (identifier "addpos234") (argument_list "(uVar5,puVar2,iVar3)" (( "(") (identifier "uVar5") (, ",") (identifier "puVar2") (, ",") (identifier "iVar3") () ")"))) (; ";")) (if_statement "if (puVar20 == (undefined *)0x0) goto LAB_000923b8;" (if "if") (parenthesized_expression "(puVar20 == (undefined *)0x0)" (( "(") (binary_expression "puVar20 == (undefined *)0x0" (identifier "puVar20") (== "==") (cast_expression "(undefined *)0x0" (( "(") (type_descriptor "undefined *" (type_identifier "undefined") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_000923b8;" (goto "goto") (statement_identifier "LAB_000923b8") (; ";"))) (} "}")))) (expression_statement "iVar14 = -*(int *)(iVar12 + 0x130);" (assignment_expression "iVar14 = -*(int *)(iVar12 + 0x130)" (identifier "iVar14") (= "=") (unary_expression "-*(int *)(iVar12 + 0x130)" (- "-") (pointer_expression "*(int *)(iVar12 + 0x130)" (* "*") (cast_expression "(int *)(iVar12 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0x130)" (( "(") (binary_expression "iVar12 + 0x130" (identifier "iVar12") (+ "+") (number_literal "0x130")) () ")")))))) (; ";")) (} "}")))) (labeled_statement "LAB_000923b8:\n      if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }" (statement_identifier "LAB_000923b8") (: ":") (if_statement "if (*(int *)(iVar12 + 0xe48) != 0) {\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(*(int *)(iVar12 + 0xe48) != 0)" (( "(") (binary_expression "*(int *)(iVar12 + 0xe48) != 0" (pointer_expression "*(int *)(iVar12 + 0xe48)" (* "*") (cast_expression "(int *)(iVar12 + 0xe48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe48)" (( "(") (binary_expression "iVar12 + 0xe48" (identifier "iVar12") (+ "+") (number_literal "0xe48")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar16 = *(int *)(iVar12 + 0xe54);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe5c);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }\n        iVar16 = *(int *)(iVar12 + 0xe64);\n        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar16 = *(int *)(iVar12 + 0xe54);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0xe54)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar12 + 0xe54)" (* "*") (cast_expression "(int *)(iVar12 + 0xe54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe54)" (( "(") (binary_expression "iVar12 + 0xe54" (identifier "iVar12") (+ "+") (number_literal "0xe54")) () ")"))))) (; ";")) (if_statement "if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }" (if "if") (parenthesized_expression "((iVar14 <= iVar16) && (iVar16 <= iVar3))" (( "(") (binary_expression "(iVar14 <= iVar16) && (iVar16 <= iVar3)" (parenthesized_expression "(iVar14 <= iVar16)" (( "(") (binary_expression "iVar14 <= iVar16" (identifier "iVar14") (<= "<=") (identifier "iVar16")) () ")")) (&& "&&") (parenthesized_expression "(iVar16 <= iVar3)" (( "(") (binary_expression "iVar16 <= iVar3" (identifier "iVar16") (<= "<=") (identifier "iVar3")) () ")"))) () ")")) (compound_statement "{\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }\n        }" ({ "{") (if_statement "if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }" (if "if") (parenthesized_expression "(iVar16 + -1 < iVar14)" (( "(") (binary_expression "iVar16 + -1 < iVar14" (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1")) (< "<") (identifier "iVar14")) () ")")) (compound_statement "{\n            *(int *)(iVar12 + 0xe54) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe58) = 0;\n          }" ({ "{") (expression_statement "*(int *)(iVar12 + 0xe54) = iVar14;" (assignment_expression "*(int *)(iVar12 + 0xe54) = iVar14" (pointer_expression "*(int *)(iVar12 + 0xe54)" (* "*") (cast_expression "(int *)(iVar12 + 0xe54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe54)" (( "(") (binary_expression "iVar12 + 0xe54" (identifier "iVar12") (+ "+") (number_literal "0xe54")) () ")")))) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "*(undefined4 *)(iVar12 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe58)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0xe58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe58)" (( "(") (binary_expression "iVar12 + 0xe58" (identifier "iVar12") (+ "+") (number_literal "0xe58")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }" (else "else") (compound_statement "{\n            *(int *)(iVar12 + 0xe54) = iVar16 + -1;\n          }" ({ "{") (expression_statement "*(int *)(iVar12 + 0xe54) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0xe54) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0xe54)" (* "*") (cast_expression "(int *)(iVar12 + 0xe54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe54)" (( "(") (binary_expression "iVar12 + 0xe54" (identifier "iVar12") (+ "+") (number_literal "0xe54")) () ")")))) (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar16 = *(int *)(iVar12 + 0xe5c);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0xe5c)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar12 + 0xe5c)" (* "*") (cast_expression "(int *)(iVar12 + 0xe5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe5c)" (( "(") (binary_expression "iVar12 + 0xe5c" (identifier "iVar12") (+ "+") (number_literal "0xe5c")) () ")"))))) (; ";")) (if_statement "if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }" (if "if") (parenthesized_expression "((iVar14 <= iVar16) && (iVar16 <= iVar3))" (( "(") (binary_expression "(iVar14 <= iVar16) && (iVar16 <= iVar3)" (parenthesized_expression "(iVar14 <= iVar16)" (( "(") (binary_expression "iVar14 <= iVar16" (identifier "iVar14") (<= "<=") (identifier "iVar16")) () ")")) (&& "&&") (parenthesized_expression "(iVar16 <= iVar3)" (( "(") (binary_expression "iVar16 <= iVar3" (identifier "iVar16") (<= "<=") (identifier "iVar3")) () ")"))) () ")")) (compound_statement "{\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }\n        }" ({ "{") (if_statement "if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }" (if "if") (parenthesized_expression "(iVar16 + -1 < iVar14)" (( "(") (binary_expression "iVar16 + -1 < iVar14" (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1")) (< "<") (identifier "iVar14")) () ")")) (compound_statement "{\n            *(int *)(iVar12 + 0xe5c) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe60) = 0;\n          }" ({ "{") (expression_statement "*(int *)(iVar12 + 0xe5c) = iVar14;" (assignment_expression "*(int *)(iVar12 + 0xe5c) = iVar14" (pointer_expression "*(int *)(iVar12 + 0xe5c)" (* "*") (cast_expression "(int *)(iVar12 + 0xe5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe5c)" (( "(") (binary_expression "iVar12 + 0xe5c" (identifier "iVar12") (+ "+") (number_literal "0xe5c")) () ")")))) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "*(undefined4 *)(iVar12 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe60)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0xe60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe60)" (( "(") (binary_expression "iVar12 + 0xe60" (identifier "iVar12") (+ "+") (number_literal "0xe60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }" (else "else") (compound_statement "{\n            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;\n          }" ({ "{") (expression_statement "*(int *)(iVar12 + 0xe5c) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0xe5c) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0xe5c)" (* "*") (cast_expression "(int *)(iVar12 + 0xe5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe5c)" (( "(") (binary_expression "iVar12 + 0xe5c" (identifier "iVar12") (+ "+") (number_literal "0xe5c")) () ")")))) (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar16 = *(int *)(iVar12 + 0xe64);" (assignment_expression "iVar16 = *(int *)(iVar12 + 0xe64)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(iVar12 + 0xe64)" (* "*") (cast_expression "(int *)(iVar12 + 0xe64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe64)" (( "(") (binary_expression "iVar12 + 0xe64" (identifier "iVar12") (+ "+") (number_literal "0xe64")) () ")"))))) (; ";")) (if_statement "if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }" (if "if") (parenthesized_expression "((iVar14 <= iVar16) && (iVar16 <= iVar3))" (( "(") (binary_expression "(iVar14 <= iVar16) && (iVar16 <= iVar3)" (parenthesized_expression "(iVar14 <= iVar16)" (( "(") (binary_expression "iVar14 <= iVar16" (identifier "iVar14") (<= "<=") (identifier "iVar16")) () ")")) (&& "&&") (parenthesized_expression "(iVar16 <= iVar3)" (( "(") (binary_expression "iVar16 <= iVar3" (identifier "iVar16") (<= "<=") (identifier "iVar3")) () ")"))) () ")")) (compound_statement "{\n          if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }\n        }" ({ "{") (if_statement "if (iVar16 + -1 < iVar14) {\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }" (if "if") (parenthesized_expression "(iVar16 + -1 < iVar14)" (( "(") (binary_expression "iVar16 + -1 < iVar14" (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1")) (< "<") (identifier "iVar14")) () ")")) (compound_statement "{\n            *(int *)(iVar12 + 0xe64) = iVar14;\n            *(undefined4 *)(iVar12 + 0xe68) = 0;\n          }" ({ "{") (expression_statement "*(int *)(iVar12 + 0xe64) = iVar14;" (assignment_expression "*(int *)(iVar12 + 0xe64) = iVar14" (pointer_expression "*(int *)(iVar12 + 0xe64)" (* "*") (cast_expression "(int *)(iVar12 + 0xe64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe64)" (( "(") (binary_expression "iVar12 + 0xe64" (identifier "iVar12") (+ "+") (number_literal "0xe64")) () ")")))) (= "=") (identifier "iVar14")) (; ";")) (expression_statement "*(undefined4 *)(iVar12 + 0xe68) = 0;" (assignment_expression "*(undefined4 *)(iVar12 + 0xe68) = 0" (pointer_expression "*(undefined4 *)(iVar12 + 0xe68)" (* "*") (cast_expression "(undefined4 *)(iVar12 + 0xe68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe68)" (( "(") (binary_expression "iVar12 + 0xe68" (identifier "iVar12") (+ "+") (number_literal "0xe68")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }" (else "else") (compound_statement "{\n            *(int *)(iVar12 + 0xe64) = iVar16 + -1;\n          }" ({ "{") (expression_statement "*(int *)(iVar12 + 0xe64) = iVar16 + -1;" (assignment_expression "*(int *)(iVar12 + 0xe64) = iVar16 + -1" (pointer_expression "*(int *)(iVar12 + 0xe64)" (* "*") (cast_expression "(int *)(iVar12 + 0xe64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar12 + 0xe64)" (( "(") (binary_expression "iVar12 + 0xe64" (identifier "iVar12") (+ "+") (number_literal "0xe64")) () ")")))) (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (} "}"))) (} "}")))) (} "}"))) (} "}")))) (return_statement "return;" (return "return") (; ";")) (} "}")))
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (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: (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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (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: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (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: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (identifier)) (binary_expression left: (identifier) right: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (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: (number_literal))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (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))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)) (binary_expression left: (identifier) right: (identifier)) (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) (if_statement condition: (parenthesized_expression (identifier)) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (char_literal (character)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (number_literal)) (binary_expression left: (identifier) right: (identifier)) (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (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)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (char_literal (escape_sequence))))) (goto_statement label: (statement_identifier))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_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: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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 (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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 (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (identifier))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list)))) (labeled_statement label: (statement_identifier) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (binary_expression left: (identifier) right: (number_literal)) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (binary_expression left: (identifier) right: (number_literal)))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (binary_expression left: (identifier) right: (number_literal)) (number_literal) (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: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (for_statement condition: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) update: (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))) (for_statement initializer: (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (identifier))) condition: (binary_expression left: (number_literal) right: (identifier)) update: (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (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))))) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (identifier)))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (unary_expression argument: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (identifier)))))) (for_statement condition: (binary_expression left: (number_literal) right: (identifier)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier)))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (for_statement condition: (binary_expression left: (number_literal) right: (identifier)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (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))))) (number_literal))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (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: (parenthesized_expression (binary_expression left: (unary_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))) arguments: (argument_list (identifier) (identifier) (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (unary_expression argument: (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))))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) consequence: (compound_statement (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (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: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (number_literal)) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal))))))))))))))))) (return_statement))))

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

{
  bool bVar1;
  undefined2 *puVar2;
  int iVar3;
  ushort *puVar4;
  undefined4 uVar5;
  int iVar6;
  uint uVar7;
  uint uVar8;
  int iVar9;
  int iVar10;
  char cVar11;
  int iVar12;
  int *piVar13;
  int iVar14;
  int iVar15;
  int iVar16;
  undefined4 uVar17;
  code *pcVar18;
  undefined *puVar19;
  undefined *puVar20;
  undefined4 uStack_90;
  int iStack_8c;
  undefined4 uStack_88;
  int iStack_84;
  int iStack_7c;
  uint uStack_78;
  int iStack_74;
  int iStack_70;
  int iStack_6c;
  uint uStack_68;
  code *pcStack_64;
  int local_40;
  int local_3c;
  undefined4 local_30;
  int local_2c;
  
  puVar20 = PTR___stack_chk_guard_00112630;
  local_3c = param_1[1];
  local_2c = *(int *)PTR___stack_chk_guard_00112630;
  pcVar18 = (code *)(PTR_LAB_00111ad8 + -0x18c);
  iVar12 = 0;
  iVar10 = 0;
  iVar9 = 0;
  uVar7 = param_2 - 1;
  local_30 = 0;
  FUN_0008fe74(param_1,0);
  iVar3 = 0;
  if (0 < (int)param_2) {
    do {
      uVar8 = uVar7;
      iVar15 = param_1[1];
      (*param_4)(param_1,param_3,&local_30);
      param_3 = param_3 + 0xc;
      iVar14 = param_1[1];
      if (iVar14 - iVar15 == iVar9) {
        iVar6 = *param_1;
        iVar16 = (*(code *)PTR_memcmp_00112430)(iVar6 + iVar10,iVar6 + iVar15,iVar9);
        if (iVar16 != 0) goto LAB_00091d8c;
        if (iVar9 < 2) {
          if (iVar12 != 0) goto LAB_00091fbc;
          iVar12 = 1;
          goto LAB_00091d90;
        }
        param_2 = iVar3 - 1;
        if (iVar12 == 0) {
          if (param_2 == 0) goto LAB_00091e58;
LAB_00091fcc:
          (*(code *)PTR_memmove_00111fe8)(iVar6 + iVar10 + 1,iVar6 + iVar10,iVar9);
          param_2 = param_2 - 1;
          param_1[1] = iVar9 + iVar10 + 1;
          if (0x7f < param_2) goto LAB_00092098;
          *(char *)(*param_1 + local_3c) = (char)param_2;
          local_3c = iVar10;
        }
        else {
LAB_00091fbc:
          param_2 = iVar3 - 2;
          if (iVar3 + -1 < 1) goto LAB_000920bc;
          iVar10 = iVar10 - iVar9;
          if (param_2 != 0) goto LAB_00091fcc;
LAB_00091e58:
          bVar1 = local_3c + 1 != iVar10;
          iVar10 = iVar9 + iVar10;
          if (bVar1) goto LAB_00092068;
          param_1[1] = iVar10;
        }
        if (iVar12 == 0) {
          iVar10 = 2;
          if (0 < (int)uVar8) goto LAB_00091e7c;
          local_40 = *param_1;
          cVar11 = -0x80;
        }
        else {
          iVar10 = 3;
          if ((int)uVar8 < 1) {
            local_40 = *param_1;
            cVar11 = -0x7f;
          }
          else {
LAB_00091e7c:
            iVar3 = param_1[1];
            do {
              uVar5 = local_30;
              (*param_4)(param_1,param_3,&local_30);
              iVar12 = param_1[1];
              param_1[1] = iVar3;
              cVar11 = (char)iVar10;
              if (iVar9 != iVar12 - iVar3) {
                local_40 = *param_1;
LAB_00091f08:
                cVar11 = cVar11 + '~';
                local_30 = uVar5;
                goto LAB_00091f18;
              }
              local_40 = *param_1;
              iVar12 = (*(code *)PTR_memcmp_00112430)
                                 (local_40 + local_3c + 1,local_40 + iVar3,iVar9);
              if (iVar12 != 0) goto LAB_00091f08;
              uVar8 = uVar8 - 1;
              param_3 = param_3 + 0xc;
              iVar10 = iVar10 + 1;
              if (uVar8 == 0) {
                cVar11 = cVar11 + '\x7f';
                goto LAB_00091f18;
              }
            } while (iVar10 != 0x81);
            cVar11 = -1;
          }
        }
LAB_00091f18:
        iVar12 = 0;
        iVar9 = 0;
        iVar10 = 0;
        *(char *)(local_40 + local_3c) = cVar11;
        local_3c = param_1[1];
        (*pcVar18)(param_1,0);
        iVar3 = 0;
      }
      else {
LAB_00091d8c:
        iVar12 = 0;
LAB_00091d90:
        iVar3 = iVar3 + 1;
        iVar9 = iVar14 - iVar15;
        iVar10 = iVar15;
        if (iVar3 == 0x80) {
          iVar12 = 0;
          iVar10 = 0;
          iVar9 = 0;
          *(undefined1 *)(*param_1 + local_3c) = 0x7f;
          local_3c = param_1[1];
          (*pcVar18)(param_1,0);
          iVar3 = 0;
        }
      }
      uVar7 = uVar8 - 1;
      param_2 = uVar8;
    } while (0 < (int)uVar8);
  }
  uVar8 = uVar7;
  if (iVar3 == 0) {
    param_1[1] = local_3c;
  }
  else {
    if (0x80 < iVar3) {
      (*(code *)PTR___assert_fail_00111f50)
                (PTR_DAT_001112f8 + 0x58e4,PTR_DAT_001112f8 + 0x5830,0x21b,PTR_DAT_001112f8 + 0x63ac
                );
LAB_00092068:
      (*(code *)PTR___assert_fail_00111f50)
                (PTR_DAT_001112f8 + 0x58bc,PTR_DAT_001112f8 + 0x5830,0x1cd,PTR_DAT_001112f8 + 0x63ac
                );
      goto LAB_0009208c;
    }
    *(char *)(*param_1 + local_3c) = (char)iVar3 + -1;
  }
  if (local_2c == *(int *)puVar20) {
    return;
  }
LAB_0009208c:
  (*(code *)PTR___stack_chk_fail_001122c8)();
LAB_00092098:
  (*(code *)PTR___assert_fail_00111f50)
            (PTR_DAT_001112f8 + 0x58d4,PTR_DAT_001112f8 + 0x5830,0x1d8,PTR_DAT_001112f8 + 0x63ac);
LAB_000920bc:
  pcVar18 = FUN_000920e0;
  puVar4 = (ushort *)(PTR_DAT_001112f8 + 0x58b0);
  puVar19 = PTR___assert_fail_00111f50;
  (*(code *)PTR___assert_fail_00111f50)
            (puVar4,PTR_DAT_001112f8 + 0x5830,0x1c7,PTR_DAT_001112f8 + 0x63ac);
  puVar20 = puVar19 + 0x871d0;
  piVar13 = *(int **)(puVar19 + 0x80550);
  uVar7 = *(uint *)(puVar4 + 2);
  uStack_90 = 0;
  iStack_8c = 0;
  uStack_88 = 0;
  iStack_84 = *piVar13;
  iStack_7c = param_3;
  uStack_78 = uVar8;
  iStack_74 = iVar9;
  iStack_70 = iVar10;
  iStack_6c = iVar12;
  uStack_68 = param_2;
  pcStack_64 = pcVar18;
  for (; 0x7f < (int)uVar7; uVar7 = (int)uVar7 >> 7) {
    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);
  }
  FUN_0008fe74(&uStack_90,uVar7 & 0xff);
  for (uVar7 = (uint)*puVar4; 0x7f < uVar7; uVar7 = (int)uVar7 >> 7) {
    FUN_0008fe74(&uStack_90,(uVar7 | 0xffffff80) & 0xff);
  }
  FUN_0008fe74(&uStack_90,uVar7 & 0xff);
  MASKED(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),
               *(int *)(puVar19 + 0x7f9f8) + 0x58);
  MASKED(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10),
               *(int *)(puVar19 + 0x7f9f8) + -0xd4);
  iVar9 = *(int *)(puVar19 + 0x7f9f8) + 0x1138;
  MASKED(&uStack_90,*(undefined4 *)(puVar4 + 2),*(undefined4 *)(puVar4 + 10));
  iVar3 = 1;
  iVar10 = iStack_8c;
  (**(code **)(puVar19 + 0x7f310))(uStack_90);
  if (iStack_84 == *piVar13) {
    return;
  }
  pcVar18 = *(code **)(puVar19 + 0x801e8);
  iVar12 = iStack_84;
  (*pcVar18)();
  if (iVar10 == 0) {
    iVar14 = iVar3;
    if (*(int *)(iVar12 + 0x1a4) != 0) {
      puVar20 = (undefined *)0x0;
    }
  }
  else {
    puVar20 = (undefined *)0x0;
    iVar14 = iVar3 - iVar10;
  }
  iVar14 = iVar14 + 1;
  if (iVar9 < 0) {
    if (-iVar9 <= iVar14) {
      iVar14 = -iVar9;
    }
    for (; 0 < iVar14; iVar14 = iVar14 + -1) {
      iVar9 = 0;
      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar3);
      FUN_00090b64(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));
      if (0 < *(int *)(iVar12 + 300)) {
        do {
          FUN_00091070(puVar2,iVar9,iVar12 + 0x54);
          iVar9 = iVar9 + 1;
        } while (iVar9 < *(int *)(iVar12 + 300));
      }
      uVar5 = *(undefined4 *)(iVar12 + 8);
      *puVar2 = 0;
      addpos234(uVar5,puVar2,iVar10);
      iVar9 = *(int *)(iVar12 + 0xe54);
      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {
        if (iVar3 < iVar15) {
          iVar15 = iVar3 + 1;
          *(undefined4 *)(iVar12 + 0xe58) = 0;
        }
        *(int *)(iVar12 + 0xe54) = iVar15;
      }
      iVar9 = *(int *)(iVar12 + 0xe5c);
      if ((iVar10 <= iVar9) && (iVar15 = iVar9 + 1, iVar9 <= iVar3)) {
        if (iVar3 < iVar15) {
          iVar15 = iVar3 + 1;
          *(undefined4 *)(iVar12 + 0xe60) = 0;
        }
        *(int *)(iVar12 + 0xe5c) = iVar15;
      }
    }
  }
  else {
    iVar15 = *(int *)(pcVar18 + 0x7f84c);
    if (iVar14 <= iVar9) {
      iVar9 = iVar14;
    }
    for (; 0 < iVar9; iVar9 = iVar9 + -1) {
      puVar2 = (undefined2 *)delpos234(*(undefined4 *)(iVar12 + 8),iVar10);
      iVar14 = iVar10;
      if (puVar20 == (undefined *)0x0) {
        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));
        if (0 < *(int *)(iVar12 + 300)) goto LAB_00092364;
        uVar5 = *(undefined4 *)(iVar12 + 8);
        *puVar2 = 0;
        addpos234(uVar5,puVar2,iVar3);
      }
      else {
        if (0 < *(int *)(iVar12 + 0x130)) {
          iVar16 = count234(*(undefined4 *)(iVar12 + 4));
          if (*(int *)(iVar12 + 0x130) == iVar16) {
            iVar16 = iVar16 + -1;
            uVar5 = delpos234(*(undefined4 *)(iVar12 + 4),0);
            (**(code **)(pcVar18 + 0x7f064))(uVar5);
          }
          else {
            *(int *)(iVar12 + 0x14) = *(int *)(iVar12 + 0x14) + 1;
          }
          uVar17 = *(undefined4 *)(iVar12 + 4);
          uVar5 = FUN_000920e0(puVar2);
          addpos234(uVar17,uVar5,iVar16);
          iVar16 = *(int *)(iVar12 + 0x10);
          if ((-*(int *)(iVar12 + 0x130) < iVar16) && (iVar16 < 0)) {
            *(int *)(iVar12 + 0x10) = iVar16 + -1;
          }
        }
        (*(code *)(iVar15 + 0xb64))(iVar12,puVar2,*(undefined4 *)(iVar12 + 300));
        if (*(int *)(iVar12 + 300) < 1) {
          uVar5 = *(undefined4 *)(iVar12 + 8);
          *puVar2 = 0;
          addpos234(uVar5,puVar2,iVar3);
        }
        else {
LAB_00092364:
          iVar16 = 0;
          do {
            FUN_00091070(puVar2,iVar16,iVar12 + 0x54);
            iVar16 = iVar16 + 1;
          } while (iVar16 < *(int *)(iVar12 + 300));
          uVar5 = *(undefined4 *)(iVar12 + 8);
          *puVar2 = 0;
          addpos234(uVar5,puVar2,iVar3);
          if (puVar20 == (undefined *)0x0) goto LAB_000923b8;
        }
        iVar14 = -*(int *)(iVar12 + 0x130);
      }
LAB_000923b8:
      if (*(int *)(iVar12 + 0xe48) != 0) {
        iVar16 = *(int *)(iVar12 + 0xe54);
        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {
          if (iVar16 + -1 < iVar14) {
            *(int *)(iVar12 + 0xe54) = iVar14;
            *(undefined4 *)(iVar12 + 0xe58) = 0;
          }
          else {
            *(int *)(iVar12 + 0xe54) = iVar16 + -1;
          }
        }
        iVar16 = *(int *)(iVar12 + 0xe5c);
        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {
          if (iVar16 + -1 < iVar14) {
            *(int *)(iVar12 + 0xe5c) = iVar14;
            *(undefined4 *)(iVar12 + 0xe60) = 0;
          }
          else {
            *(int *)(iVar12 + 0xe5c) = iVar16 + -1;
          }
        }
        iVar16 = *(int *)(iVar12 + 0xe64);
        if ((iVar14 <= iVar16) && (iVar16 <= iVar3)) {
          if (iVar16 + -1 < iVar14) {
            *(int *)(iVar12 + 0xe64) = iVar14;
            *(undefined4 *)(iVar12 + 0xe68) = 0;
          }
          else {
            *(int *)(iVar12 + 0xe64) = iVar16 + -1;
          }
        }
      }
    }
  }
  return;
}

