
/* WARNING: Enum "anon_enum_32": Some values do not have unique names */

void term_print_flush(Terminal *term)

{
  tree234 *ptVar1;
  bufchain *ch;
  bufchain *ch_00;
  Terminal *term_00;
  Terminal *b;
  Terminal *ldata;
  bufchain *in_a1;
  tree234 *ptVar2;
  tree234 *ptVar3;
  uint uVar4;
  bufchain_granule *pbVar5;
  tree234 *ptVar6;
  bufchain_granule *pbVar7;
  void **data_00;
  tree234 *data_01;
  cmpfn234 *unaff_s5;
  byte *unaff_s6;
  void **ppvVar8;
  int iVar9;
  undefined *puVar10;
  code *pcVar11;
  tree234 *ptVar12;
  code *pcVar13;
  buf bStack_110;
  undefined4 uStack_104;
  Terminal *pTStack_100;
  bufchain_granule *pbStack_fc;
  undefined1 *puStack_f8;
  void **ppvStack_f4;
  tree234 *ptStack_f0;
  code *pcStack_ec;
  code *pcStack_d8;
  tree234 *ptStack_d0;
  tree234 *ptStack_cc;
  tree234 *ptStack_c8;
  tree234 *ptStack_c4;
  tree234 *ptStack_c0;
  code *pcStack_bc;
  tree234 *ptStack_b8;
  int iStack_b4;
  bufchain *pbStack_b0;
  bufchain *pbStack_ac;
  Terminal *pTStack_a8;
  void **ppvStack_a4;
  tree234 *ptStack_a0;
  cmpfn234 *pp_Stack_9c;
  byte *pbStack_98;
  byte bStack_6d;
  tree234 tStack_6c;
  int iStack_64;
  bufchain *pbStack_60;
  bufchain *pbStack_5c;
  Terminal *pTStack_58;
  void **ppvStack_54;
  tree234 *ptStack_50;
  void *data;
  int len;
  cmpfn234 local_1c;
  
  local_1c = *(cmpfn234 *)PTR___stack_chk_guard_000be114;
  ch_00 = &term->printer_buf;
  data_01 = (tree234 *)&len;
  data_00 = &data;
  while (term_00 = (Terminal *)ch_00, ch = (bufchain *)bufchain_size(ch_00), 5 < (int)ch) {
    bufchain_prefix(ch_00,data_00,(int *)data_01);
    if ((int)((int)(ch + -1) + 8) <= len) {
      len = (int)(ch + -1) + 7;
    }
    (*(code *)PTR_printer_job_data_000bd630)(term->print_job,data,len);
    in_a1 = (bufchain *)len;
    bufchain_consume(ch_00,len);
  }
  if (local_1c == *(cmpfn234 *)PTR___stack_chk_guard_000be114) {
    return;
  }
  ptVar2 = data_01;
  puVar10 = PTR___stack_chk_fail_000bddb4;
  (*(code *)PTR___stack_chk_fail_000bddb4)();
  iStack_64 = **(int **)(puVar10 + 0x735a4);
  pbStack_60 = ch;
  pbStack_5c = ch_00;
  pTStack_58 = term;
  ppvStack_54 = data_00;
  ptStack_50 = data_01;
  if ((term_00->printing != 0) || (b = term_00, term_00->only_printing != 0)) {
    term_print_flush(term_00);
    ch = &term_00->printer_buf;
    unaff_s5 = &tStack_6c.cmp;
    data_01 = &tStack_6c;
    data_00 = (void **)0x1b;
    unaff_s6 = &bStack_6d;
    while (ch_00 = (bufchain *)bufchain_size(ch), 0 < (int)ch_00) {
      bufchain_prefix(ch,&data_01->root,(int *)unaff_s5);
      bStack_6d = *(byte *)&(tStack_6c.root)->parent;
      ptVar2 = (tree234 *)&DAT_00000001;
      if ((bStack_6d & 0x7f) == 0x1b) {
        in_a1 = ch_00;
        bufchain_consume(ch,(int)ch_00);
        break;
      }
      (**(code **)(puVar10 + 0x72ac0))(term_00->print_job,unaff_s6);
      in_a1 = (bufchain *)&DAT_00000001;
      bufchain_consume(ch,1);
    }
    b = (Terminal *)term_00->print_job;
    (**(code **)(puVar10 + 0x72ac4))();
    term_00->print_job = (printer_job *)0x0;
    term_00->only_printing = 0;
    term_00->printing = 0;
  }
  if (iStack_64 == **(int **)(puVar10 + 0x735a4)) {
    return;
  }
  pcVar11 = *(code **)(puVar10 + 0x73244);
  (*pcVar11)();
  pcStack_d8 = pcVar11 + 0x7a4d4;
  iStack_b4 = **(int **)(pcVar11 + 0x73418);
  ppvVar8 = *(void ***)((int)(in_a1 + 1) + 8);
  ptStack_b8 = (tree234 *)0x0;
  pbVar5 = in_a1->tail;
  ptStack_c4 = b->scrollback;
  ldata = b;
  ptStack_d0 = ptVar2;
  pbStack_b0 = ch;
  pbStack_ac = ch_00;
  pTStack_a8 = term_00;
  ppvStack_a4 = data_00;
  ptStack_a0 = data_01;
  pp_Stack_9c = unaff_s5;
  pbStack_98 = unaff_s6;
  add((buf *)b,'\0');
  ptStack_c8 = (tree234 *)0x0;
  ptStack_cc = (tree234 *)0x0;
  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);
  ptVar2 = (tree234 *)0x0;
  pcVar11 = pcStack_d8;
  ptVar12 = (tree234 *)0x0;
  ptVar6 = ptStack_cc;
  while (ptStack_cc = ptVar6, pbVar7 = (bufchain_granule *)((int)&pbVar5[-1].bufmax + 3),
        0 < (int)pbVar5) {
    data_01 = b->scrollback;
    ldata = b;
    (*(code *)ptStack_d0)(b,ppvVar8,&ptStack_b8);
    ptVar6 = (tree234 *)((int)b->scrollback - (int)data_01);
    data_00 = ppvVar8 + 3;
    pbVar5 = pbVar7;
    if (ptVar12 == ptVar6) {
      iVar9 = b->compatibility_level;
      ldata = (Terminal *)((int)&ptStack_cc->root + iVar9);
      ptStack_c0 = (tree234 *)
                   (**(code **)(pcStack_d8 + -0x72b4))
                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6);
      pcVar11 = pcStack_d8;
      if (ptStack_c0 != (tree234 *)0x0) {
LAB_0004aff8:
        ptStack_c8 = (tree234 *)0x0;
        pbVar5 = pbVar7;
        goto LAB_0004affc;
      }
      if ((int)ptVar6 < 2) {
        if (ptStack_c8 == (tree234 *)0x0) {
          ptStack_c8 = (tree234 *)&DAT_00000001;
          goto LAB_0004affc;
        }
LAB_0004b138:
        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);
        if (0 < (int)((int)&ptVar2[-1].cmp + 3)) {
          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);
          goto LAB_0004addc;
        }
        (**(code **)(pcStack_d8 + -0x7774))
                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,
                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);
LAB_0004aecc:
        (**(code **)(pcVar11 + -0x7774))
                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,
                   *(int *)(pcVar11 + -0x7f68) + 0x3488);
LAB_0004aef4:
        ptVar2 = ptStack_cc;
        (**(code **)(pcVar11 + -0x76e0))
                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),
                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12);
        pcVar11 = pcStack_d8;
        ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1));
        b->scrollback = ptVar12;
        if ((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80) {
          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;
          ptStack_c4 = ptStack_cc;
          goto LAB_0004adfc;
        }
        (**(code **)(pcStack_d8 + -0x7774))
                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,
                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);
LAB_0004af7c:
        ptStack_b8 = ptVar12;
        pbVar5 = pbVar7;
        if ((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)) {
          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);
          (**(code **)(pcVar11 + -0x7774))
                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,
                     *(int *)(pcVar11 + -0x7f68) + 0x3488);
          goto LAB_0004aff8;
        }
LAB_0004af8c:
        iVar9 = b->compatibility_level;
      }
      else {
        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);
        if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;
LAB_0004addc:
        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;
        if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;
        b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);
LAB_0004adfc:
        ptVar1 = ptStack_c4;
        ptVar2 = (tree234 *)0x3;
        if (ptStack_c8 == (tree234 *)0x0) {
          ptVar2 = (tree234 *)0x2;
        }
        if ((int)pbVar7 < 1) goto LAB_0004af8c;
        do {
          ptVar12 = ptStack_b8;
          data_01 = b->scrollback;
          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);
          ptVar3 = b->scrollback;
          b->scrollback = data_01;
          pcVar11 = pcStack_d8;
          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||
             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))
                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),
                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),
             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;
          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);
          data_00 = data_00 + 3;
          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);
          ptVar12 = ptStack_b8;
          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;
        } while (ptVar2 != (tree234 *)0x81);
        iVar9 = b->compatibility_level;
        pbVar5 = pbVar7;
      }
      *(char *)((int)&ptStack_c4->root + iVar9) = (char)ptVar2 + '~';
      ptStack_c4 = b->scrollback;
      ldata = b;
      (*pcStack_bc)(b,0);
      ptStack_c8 = ptStack_c0;
      data_01 = ptStack_c0;
      ptVar2 = ptStack_c0;
      ppvVar8 = data_00;
      pcVar11 = pcStack_d8;
      ptVar12 = ptStack_c0;
      ptVar6 = ptStack_c0;
    }
    else {
      ptStack_c8 = (tree234 *)0x0;
      pcVar11 = pcStack_d8;
LAB_0004affc:
      ptVar2 = (tree234 *)((int)&ptVar2->root + 1);
      ppvVar8 = data_00;
      ptVar12 = ptVar6;
      ptVar6 = data_01;
      if (ptVar2 == (tree234 *)0x80) {
        *(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;
        ptStack_c4 = b->scrollback;
        ldata = b;
        (*pcStack_bc)(b,0);
        ptStack_c8 = (tree234 *)0x0;
        data_01 = (tree234 *)0x0;
        ptVar2 = (tree234 *)0x0;
        pcVar11 = pcStack_d8;
        ptVar12 = (tree234 *)0x0;
        ptVar6 = (tree234 *)0x0;
      }
    }
  }
  if (0 < (int)ptVar2) {
    if ((int)ptVar2 < 0x81) {
      *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)ptVar2 + -1;
      goto LAB_0004b0c0;
    }
    ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a88);
    (**(code **)(pcVar11 + -0x7774))
              (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x21b,*(int *)(pcVar11 + -0x7f68) + 0x3488
              );
  }
  b->scrollback = ptStack_c4;
LAB_0004b0c0:
  if (iStack_b4 == **(int **)(pcVar11 + -0x70bc)) {
    return;
  }
  pcVar11 = *(code **)(pcVar11 + -0x741c);
  pcVar13 = compressline;
  (*pcVar11)();
  uStack_104 = **(undefined4 **)(pcVar11 + 0x72fb8);
  bStack_110.data = (uchar *)0x0;
  bStack_110.len = 0;
  bStack_110.size = 0;
  ptVar2 = ldata->scrollback;
  pTStack_100 = b;
  pbStack_fc = pbVar5;
  puStack_f8 = (undefined1 *)pbVar7;
  ppvStack_f4 = data_00;
  ptStack_f0 = data_01;
  pcStack_ec = pcVar13;
  if (0x7f < (int)ptVar2) {
    do {
      add(&bStack_110,(byte)ptVar2 | 0x80);
      ptVar2 = (tree234 *)((int)ptVar2 >> 7);
    } while (0x7f < (int)ptVar2);
  }
  add(&bStack_110,(uchar)ptVar2);
  uVar4 = (uint)*(ushort *)&ldata->compatibility_level;
  if (0x7f < uVar4) {
    do {
      add(&bStack_110,(byte)uVar4 | 0x80);
      uVar4 = (int)uVar4 >> 7;
    } while (0x7f < uVar4);
  }
  add(&bStack_110,(uchar)uVar4);
  makerle(&bStack_110,(termline *)ldata,
          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7cc4));
  makerle(&bStack_110,(termline *)ldata,
          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7df8));
  makerle(&bStack_110,(termline *)ldata,
          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x6e08));
                    /* WARNING: Subroutine does not return */
  saferealloc(bStack_110.data,bStack_110.len,1);
}



void FUN_0004aa58(int param_1,code *param_2,undefined4 param_3,int param_4)

{
  code *pcVar1;
  int iVar2;
  undefined4 uVar3;
  undefined2 *puVar4;
  int iVar5;
  code *pcVar6;
  code **ppcVar7;
  uint uVar8;
  int iVar9;
  code *pcVar10;
  int iVar11;
  code **ppcVar12;
  int iVar13;
  undefined4 *puVar14;
  undefined4 uVar15;
  int iVar16;
  code **ppcVar17;
  int iVar18;
  undefined1 *unaff_s5;
  undefined1 *unaff_s6;
  undefined4 *puVar19;
  int iVar20;
  undefined *puVar21;
  code *pcVar22;
  code *pcVar23;
  code **ppcVar24;
  undefined4 uStack_110;
  int iStack_10c;
  undefined4 uStack_108;
  int iStack_104;
  code *pcStack_100;
  int iStack_fc;
  int iStack_f8;
  undefined4 *puStack_f4;
  code **ppcStack_f0;
  code *pcStack_ec;
  code *pcStack_d8;
  code **ppcStack_d0;
  code **ppcStack_cc;
  code **ppcStack_c8;
  code **ppcStack_c4;
  code **ppcStack_c0;
  code *pcStack_bc;
  undefined4 uStack_b8;
  int iStack_b4;
  code *pcStack_b0;
  code *pcStack_ac;
  code *pcStack_a8;
  undefined4 *puStack_a4;
  code **ppcStack_a0;
  undefined1 *puStack_9c;
  undefined1 *puStack_98;
  undefined1 uStack_6d;
  code *pcStack_6c;
  undefined1 auStack_68 [4];
  int iStack_64;
  code *pcStack_60;
  code *pcStack_5c;
  int iStack_58;
  undefined4 *puStack_54;
  code **ppcStack_50;
  undefined4 local_24;
  code *local_20;
  int local_1c;
  
  local_1c = *(int *)PTR___stack_chk_guard_000be114;
  pcVar10 = (code *)(param_1 + 0xf8);
  ppcVar17 = &local_20;
  puVar14 = &local_24;
  while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {
    bufchain_prefix(pcVar10,puVar14);
    if ((int)(pcVar1 + -4) <= (int)local_20) {
      local_20 = pcVar1 + -5;
    }
    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);
    param_2 = local_20;
    bufchain_consume(pcVar10);
  }
  if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {
    return;
  }
  ppcVar7 = ppcVar17;
  puVar21 = PTR___stack_chk_fail_000bddb4;
  (*(code *)PTR___stack_chk_fail_000bddb4)();
  iStack_64 = **(int **)(puVar21 + 0x735a4);
  pcStack_60 = pcVar1;
  pcStack_5c = pcVar10;
  iStack_58 = param_1;
  puStack_54 = puVar14;
  ppcStack_50 = ppcVar17;
  if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {
    FUN_0004aa58(pcVar23);
    pcVar1 = pcVar23 + 0xf8;
    unaff_s5 = auStack_68;
    ppcVar17 = &pcStack_6c;
    puVar14 = (undefined4 *)0x1b;
    unaff_s6 = &uStack_6d;
    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {
      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);
      uStack_6d = *pcStack_6c;
      ppcVar7 = (code **)0x1;
      if (((byte)uStack_6d & 0x7f) == 0x1b) {
        param_2 = pcVar10;
        bufchain_consume(pcVar1);
        break;
      }
      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);
      param_2 = (code *)0x1;
      bufchain_consume(pcVar1);
    }
    pcVar6 = *(code **)(pcVar23 + 0x104);
    (**(code **)(puVar21 + 0x72ac4))();
    *(undefined4 *)(pcVar23 + 0x104) = 0;
    *(undefined4 *)(pcVar23 + 0xf0) = 0;
    *(undefined4 *)(pcVar23 + 0xec) = 0;
  }
  if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {
    return;
  }
  pcVar22 = *(code **)(puVar21 + 0x73244);
  (*pcVar22)();
  pcStack_d8 = pcVar22 + 0x7a4d4;
  iStack_b4 = **(int **)(pcVar22 + 0x73418);
  puVar19 = *(undefined4 **)(param_2 + 0x14);
  uStack_b8 = 0;
  iVar11 = *(int *)(param_2 + 4);
  ppcStack_c4 = *(code ***)(pcVar6 + 4);
  pcVar22 = pcVar6;
  ppcStack_d0 = ppcVar7;
  pcStack_b0 = pcVar1;
  pcStack_ac = pcVar10;
  pcStack_a8 = pcVar23;
  puStack_a4 = puVar14;
  ppcStack_a0 = ppcVar17;
  puStack_9c = unaff_s5;
  puStack_98 = unaff_s6;
  FUN_00048168();
  ppcStack_c8 = (code **)0x0;
  ppcStack_cc = (code **)0x0;
  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);
  ppcVar7 = (code **)0x0;
  ppcVar24 = (code **)0x0;
  ppcVar12 = ppcStack_cc;
  while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {
    ppcVar17 = *(code ***)(pcVar6 + 4);
    pcVar22 = pcVar6;
    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);
    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);
    puVar14 = puVar19 + 3;
    iVar11 = iVar13;
    if (ppcVar24 == ppcVar12) {
      iVar20 = *(int *)pcVar6;
      pcVar22 = (code *)((int)ppcStack_cc + iVar20);
      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))
                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);
      if (ppcStack_c0 != (code **)0x0) {
        ppcStack_c8 = (code **)0x0;
        goto LAB_0004affc;
      }
      if ((int)ppcVar12 < 2) {
        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;
        ppcStack_c8 = (code **)0x1;
        goto LAB_0004affc;
      }
      iVar16 = (int)ppcVar7 + -1;
      if (ppcStack_c8 != (code **)0x0) {
LAB_0004b138:
        iVar16 = (int)ppcVar7 + -2;
        if ((int)ppcVar7 + -1 < 1) {
          (**(code **)(pcStack_d8 + -0x7774))
                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0
                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);
          return;
        }
        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);
      }
      ppcVar17 = ppcStack_cc;
      if (iVar16 == 0) {
        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {
          (**(code **)(pcStack_d8 + -0x7774))
                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0
                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);
          return;
        }
        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;
      }
      else {
        (**(code **)(pcStack_d8 + -0x76e0))
                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);
        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;
        if (0x7f < iVar16 - 1U) {
          (**(code **)(pcStack_d8 + -0x7774))
                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0
                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);
          return;
        }
        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;
        ppcStack_c4 = ppcStack_cc;
      }
      ppcVar17 = ppcStack_c4;
      iVar20 = 3;
      if (ppcStack_c8 == (code **)0x0) {
        iVar20 = 2;
      }
      if (iVar13 < 1) {
LAB_0004af8c:
        iVar16 = *(int *)pcVar6;
      }
      else {
        do {
          uVar3 = uStack_b8;
          iVar16 = *(int *)(pcVar6 + 4);
          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);
          iVar11 = *(int *)(pcVar6 + 4);
          *(int *)(pcVar6 + 4) = iVar16;
          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||
             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))
                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),
             iVar11 != 0)) {
LAB_0004af7c:
            uStack_b8 = uVar3;
            param_4 = *(int *)(pcStack_d8 + -0x7f68);
            iVar11 = iVar13;
            if (0x7f < iVar20 - 2U) {
              (**(code **)(pcStack_d8 + -0x7774))
                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,
                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);
              return;
            }
            goto LAB_0004af8c;
          }
          iVar13 = iVar13 + -1;
          puVar14 = puVar14 + 3;
          iVar20 = iVar20 + 1;
          uVar3 = uStack_b8;
          if (iVar13 == 0) goto LAB_0004af7c;
        } while (iVar20 != 0x81);
        iVar16 = *(int *)pcVar6;
        iVar11 = iVar13;
      }
      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';
      ppcStack_c4 = *(code ***)(pcVar6 + 4);
      pcVar22 = pcVar6;
      (*pcStack_bc)(pcVar6,0);
      ppcStack_c8 = ppcStack_c0;
      ppcVar17 = ppcStack_c0;
      ppcVar7 = ppcStack_c0;
      puVar19 = puVar14;
      ppcVar24 = ppcStack_c0;
      ppcVar12 = ppcStack_c0;
    }
    else {
      ppcStack_c8 = (code **)0x0;
LAB_0004affc:
      ppcVar7 = (code **)((int)ppcVar7 + 1);
      puVar19 = puVar14;
      ppcVar24 = ppcVar12;
      ppcVar12 = ppcVar17;
      if (ppcVar7 == (code **)0x80) {
        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;
        ppcStack_c4 = *(code ***)(pcVar6 + 4);
        pcVar22 = pcVar6;
        (*pcStack_bc)(pcVar6,0);
        ppcStack_c8 = (code **)0x0;
        ppcVar17 = (code **)0x0;
        ppcVar7 = (code **)0x0;
        ppcVar24 = (code **)0x0;
        ppcVar12 = (code **)0x0;
      }
    }
  }
  if ((int)ppcVar7 < 1) {
    *(code ***)(pcVar6 + 4) = ppcStack_c4;
  }
  else {
    if (0x80 < (int)ppcVar7) {
      (**(code **)(pcStack_d8 + -0x7774))
                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,
                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);
      return;
    }
    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;
  }
  if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {
    return;
  }
  pcVar23 = *(code **)(pcStack_d8 + -0x741c);
  pcVar1 = FUN_0004b15c;
  (*pcVar23)();
  pcVar10 = pcVar23 + 0x7a074;
  iStack_104 = **(int **)(pcVar23 + 0x72fb8);
  uStack_110 = 0;
  iStack_10c = 0;
  uStack_108 = 0;
  uVar8 = *(uint *)(pcVar22 + 4);
  pcStack_100 = pcVar6;
  iStack_fc = iVar11;
  iStack_f8 = iVar13;
  puStack_f4 = puVar14;
  ppcStack_f0 = ppcVar17;
  pcStack_ec = pcVar1;
  if (0x7f < (int)uVar8) {
    do {
      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);
      uVar8 = (int)uVar8 >> 7;
    } while (0x7f < (int)uVar8);
  }
  FUN_00048168(&uStack_110,uVar8 & 0xff);
  uVar8 = (uint)*(ushort *)pcVar22;
  if (0x7f < uVar8) {
    do {
      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);
      uVar8 = (int)uVar8 >> 7;
    } while (0x7f < uVar8);
  }
  FUN_00048168(&uStack_110,uVar8 & 0xff);
  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);
  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);
  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);
  iVar13 = 1;
  iVar11 = iStack_10c;
  saferealloc(uStack_110);
  if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {
    return;
  }
  pcVar23 = *(code **)(pcVar23 + 0x72c58);
  iVar20 = iStack_104;
  (*pcVar23)();
  if (iVar11 == 0) {
    if (*(int *)(iVar20 + 0x1a4) != 0) {
      pcVar10 = (code *)0x0;
    }
  }
  else {
    pcVar10 = (code *)0x0;
  }
  iVar16 = (iVar13 - iVar11) + 1;
  if (param_4 < 0) {
    if (-param_4 <= iVar16) {
      iVar16 = -param_4;
    }
    iVar18 = *(int *)(pcVar23 + 0x722f0);
    iVar2 = *(int *)(pcVar23 + 0x722f0);
    for (; 0 < iVar16; iVar16 = iVar16 + -1) {
      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);
      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));
      if (0 < *(int *)(iVar20 + 300)) {
        iVar9 = 0;
        do {
          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);
          iVar9 = iVar9 + 1;
        } while (iVar9 < *(int *)(iVar20 + 300));
      }
      *puVar4 = 0;
      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);
      iVar9 = *(int *)(iVar20 + 0xe54);
      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {
        if (iVar13 < iVar9 + 1) {
          *(int *)(iVar20 + 0xe54) = iVar13 + 1;
          *(undefined4 *)(iVar20 + 0xe58) = 0;
        }
        else {
          *(int *)(iVar20 + 0xe54) = iVar9 + 1;
        }
      }
      iVar9 = *(int *)(iVar20 + 0xe5c);
      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {
        if (iVar13 < iVar9 + 1) {
          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;
          *(undefined4 *)(iVar20 + 0xe60) = 0;
        }
        else {
          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;
        }
      }
    }
  }
  else {
    if (param_4 < iVar16) {
      iVar16 = param_4;
    }
    iVar2 = *(int *)(pcVar23 + 0x722f0);
    iVar18 = *(int *)(pcVar23 + 0x722f0);
    for (; 0 < iVar16; iVar16 = iVar16 + -1) {
      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);
      iVar9 = iVar11;
      if (pcVar10 == (code *)0x0) {
        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));
        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;
        *puVar4 = 0;
        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);
LAB_0004b5f8:
        iVar5 = *(int *)(iVar20 + 0xe48);
      }
      else {
        if (0 < *(int *)(iVar20 + 0x130)) {
          iVar5 = count234(*(undefined4 *)(iVar20 + 4));
          if (*(int *)(iVar20 + 0x130) == iVar5) {
            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);
            safefree(uVar3);
            iVar5 = iVar5 + -1;
          }
          else {
            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;
          }
          uVar15 = *(undefined4 *)(iVar20 + 4);
          uVar3 = FUN_0004b15c(puVar4);
          addpos234(uVar15,uVar3,iVar5);
          iVar5 = *(int *)(iVar20 + 0x10);
          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {
            *(int *)(iVar20 + 0x10) = iVar5 + -1;
          }
        }
        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));
        if (*(int *)(iVar20 + 300) < 1) {
          *puVar4 = 0;
          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);
LAB_0004b5f0:
          iVar9 = -*(int *)(iVar20 + 0x130);
          goto LAB_0004b5f8;
        }
LAB_0004b730:
        iVar5 = 0;
        do {
          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);
          iVar5 = iVar5 + 1;
        } while (iVar5 < *(int *)(iVar20 + 300));
        *puVar4 = 0;
        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);
        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;
        iVar5 = *(int *)(iVar20 + 0xe48);
      }
      if (iVar5 != 0) {
        iVar5 = *(int *)(iVar20 + 0xe54);
        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {
          if (iVar5 + -1 < iVar9) {
            *(int *)(iVar20 + 0xe54) = iVar9;
            *(undefined4 *)(iVar20 + 0xe58) = 0;
          }
          else {
            *(int *)(iVar20 + 0xe54) = iVar5 + -1;
          }
        }
        iVar5 = *(int *)(iVar20 + 0xe5c);
        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {
          if (iVar5 + -1 < iVar9) {
            *(int *)(iVar20 + 0xe5c) = iVar9;
            *(undefined4 *)(iVar20 + 0xe60) = 0;
          }
          else {
            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;
          }
        }
        iVar5 = *(int *)(iVar20 + 0xe64);
        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {
          if (iVar5 + -1 < iVar9) {
            *(int *)(iVar20 + 0xe64) = iVar9;
            *(undefined4 *)(iVar20 + 0xe68) = 0;
          }
          else {
            *(int *)(iVar20 + 0xe64) = iVar5 + -1;
          }
        }
      }
    }
  }
  return;
}


lui gp,0x8
addiu gp,gp,-0x5888
addu gp,gp,t9
addiu sp,sp,-0x40
sw ra,0x3c(sp)
sw s4,0x38(sp)
sw s3,0x34(sp)
sw s2,0x30(sp)
sw s1,0x2c(sp)
sw s0,0x28(sp)
sw gp,0x10(sp)
or s2,a0,zero
lw v0,-0x70bc(gp)
lw v0,0x0(v0)
sw v0,0x24(sp)
addiu s1,a0,0xf8
addiu s4,sp,0x20
b 0x0004aad8
_addiu s3,sp,0x1c
lw a2,0x20(sp)
lw a1,0x1c(sp)
lw a0,0x104(s2)
lw t9,-0x7ba0(gp)
jalr t9
_nop
lw gp,0x10(sp)
lw a1,0x20(sp)
or a0,s1,zero
lw t9,-0x7f94(gp)
bal 0x00038000
_nop
lw gp,0x10(sp)
or a0,s1,zero
lw t9,-0x7fa0(gp)
bal 0x00037130
_nop
lw gp,0x10(sp)
or s0,v0,zero
slti v0,v0,0x6
bne v0,zero,0x0004ab34
_or a2,s4,zero
or a1,s3,zero
or a0,s1,zero
lw t9,-0x7d34(gp)
bal 0x00037138
_nop
lw gp,0x10(sp)
addiu v0,s0,-0x4
lw v1,0x20(sp)
slt v0,v1,v0
bne v0,zero,0x0004aaa8
_lw a2,0x20(sp)
addiu s0,s0,-0x5
b 0x0004aaa4
_sw s0,0x20(sp)
lw v1,0x24(sp)
lw v0,-0x70bc(gp)
lw v0,0x0(v0)
bne v1,v0,0x0004ab64
_lw ra,0x3c(sp)
lw s4,0x38(sp)
lw s3,0x34(sp)
lw s2,0x30(sp)
lw s1,0x2c(sp)
lw s0,0x28(sp)
jr ra
_addiu sp,sp,0x40
lw t9,-0x741c(gp)
jalr t9
_nop
(translation_unit "void FUN_0004aa58(int param_1,code *param_2,undefined4 param_3,int param_4)\n\n{\n  code *pcVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined2 *puVar4;\n  int iVar5;\n  code *pcVar6;\n  code **ppcVar7;\n  uint uVar8;\n  int iVar9;\n  code *pcVar10;\n  int iVar11;\n  code **ppcVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  int iVar16;\n  code **ppcVar17;\n  int iVar18;\n  undefined1 *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code **ppcVar24;\n  undefined4 uStack_110;\n  int iStack_10c;\n  undefined4 uStack_108;\n  int iStack_104;\n  code *pcStack_100;\n  int iStack_fc;\n  int iStack_f8;\n  undefined4 *puStack_f4;\n  code **ppcStack_f0;\n  code *pcStack_ec;\n  code *pcStack_d8;\n  code **ppcStack_d0;\n  code **ppcStack_cc;\n  code **ppcStack_c8;\n  code **ppcStack_c4;\n  code **ppcStack_c0;\n  code *pcStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  code *pcStack_b0;\n  code *pcStack_ac;\n  code *pcStack_a8;\n  undefined4 *puStack_a4;\n  code **ppcStack_a0;\n  undefined1 *puStack_9c;\n  undefined1 *puStack_98;\n  undefined1 uStack_6d;\n  code *pcStack_6c;\n  undefined1 auStack_68 [4];\n  int iStack_64;\n  code *pcStack_60;\n  code *pcStack_5c;\n  int iStack_58;\n  undefined4 *puStack_54;\n  code **ppcStack_50;\n  undefined4 local_24;\n  code *local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000be114;\n  pcVar10 = (code *)(param_1 + 0xf8);\n  ppcVar17 = &local_20;\n  puVar14 = &local_24;\n  while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  ppcVar7 = ppcVar17;\n  puVar21 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_64 = **(int **)(puVar21 + 0x735a4);\n  pcStack_60 = pcVar1;\n  pcStack_5c = pcVar10;\n  iStack_58 = param_1;\n  puStack_54 = puVar14;\n  ppcStack_50 = ppcVar17;\n  if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }\n  if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {\n    return;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x73244);\n  (*pcVar22)();\n  pcStack_d8 = pcVar22 + 0x7a4d4;\n  iStack_b4 = **(int **)(pcVar22 + 0x73418);\n  puVar19 = *(undefined4 **)(param_2 + 0x14);\n  uStack_b8 = 0;\n  iVar11 = *(int *)(param_2 + 4);\n  ppcStack_c4 = *(code ***)(pcVar6 + 4);\n  pcVar22 = pcVar6;\n  ppcStack_d0 = ppcVar7;\n  pcStack_b0 = pcVar1;\n  pcStack_ac = pcVar10;\n  pcStack_a8 = pcVar23;\n  puStack_a4 = puVar14;\n  ppcStack_a0 = ppcVar17;\n  puStack_9c = unaff_s5;\n  puStack_98 = unaff_s6;\n  FUN_00048168();\n  ppcStack_c8 = (code **)0x0;\n  ppcStack_cc = (code **)0x0;\n  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);\n  ppcVar7 = (code **)0x0;\n  ppcVar24 = (code **)0x0;\n  ppcVar12 = ppcStack_cc;\n  while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }\n  if ((int)ppcVar7 < 1) {\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }\n  else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }\n  if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcStack_d8 + -0x741c);\n  pcVar1 = FUN_0004b15c;\n  (*pcVar23)();\n  pcVar10 = pcVar23 + 0x7a074;\n  iStack_104 = **(int **)(pcVar23 + 0x72fb8);\n  uStack_110 = 0;\n  iStack_10c = 0;\n  uStack_108 = 0;\n  uVar8 = *(uint *)(pcVar22 + 4);\n  pcStack_100 = pcVar6;\n  iStack_fc = iVar11;\n  iStack_f8 = iVar13;\n  puStack_f4 = puVar14;\n  ppcStack_f0 = ppcVar17;\n  pcStack_ec = pcVar1;\n  if (0x7f < (int)uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  uVar8 = (uint)*(ushort *)pcVar22;\n  if (0x7f < uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);\n  iVar13 = 1;\n  iVar11 = iStack_10c;\n  saferealloc(uStack_110);\n  if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcVar23 + 0x72c58);\n  iVar20 = iStack_104;\n  (*pcVar23)();\n  if (iVar11 == 0) {\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }\n  else {\n    pcVar10 = (code *)0x0;\n  }\n  iVar16 = (iVar13 - iVar11) + 1;\n  if (param_4 < 0) {\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }\n  else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0004aa58(int param_1,code *param_2,undefined4 param_3,int param_4)\n\n{\n  code *pcVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined2 *puVar4;\n  int iVar5;\n  code *pcVar6;\n  code **ppcVar7;\n  uint uVar8;\n  int iVar9;\n  code *pcVar10;\n  int iVar11;\n  code **ppcVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  int iVar16;\n  code **ppcVar17;\n  int iVar18;\n  undefined1 *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code **ppcVar24;\n  undefined4 uStack_110;\n  int iStack_10c;\n  undefined4 uStack_108;\n  int iStack_104;\n  code *pcStack_100;\n  int iStack_fc;\n  int iStack_f8;\n  undefined4 *puStack_f4;\n  code **ppcStack_f0;\n  code *pcStack_ec;\n  code *pcStack_d8;\n  code **ppcStack_d0;\n  code **ppcStack_cc;\n  code **ppcStack_c8;\n  code **ppcStack_c4;\n  code **ppcStack_c0;\n  code *pcStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  code *pcStack_b0;\n  code *pcStack_ac;\n  code *pcStack_a8;\n  undefined4 *puStack_a4;\n  code **ppcStack_a0;\n  undefined1 *puStack_9c;\n  undefined1 *puStack_98;\n  undefined1 uStack_6d;\n  code *pcStack_6c;\n  undefined1 auStack_68 [4];\n  int iStack_64;\n  code *pcStack_60;\n  code *pcStack_5c;\n  int iStack_58;\n  undefined4 *puStack_54;\n  code **ppcStack_50;\n  undefined4 local_24;\n  code *local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000be114;\n  pcVar10 = (code *)(param_1 + 0xf8);\n  ppcVar17 = &local_20;\n  puVar14 = &local_24;\n  while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  ppcVar7 = ppcVar17;\n  puVar21 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_64 = **(int **)(puVar21 + 0x735a4);\n  pcStack_60 = pcVar1;\n  pcStack_5c = pcVar10;\n  iStack_58 = param_1;\n  puStack_54 = puVar14;\n  ppcStack_50 = ppcVar17;\n  if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }\n  if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {\n    return;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x73244);\n  (*pcVar22)();\n  pcStack_d8 = pcVar22 + 0x7a4d4;\n  iStack_b4 = **(int **)(pcVar22 + 0x73418);\n  puVar19 = *(undefined4 **)(param_2 + 0x14);\n  uStack_b8 = 0;\n  iVar11 = *(int *)(param_2 + 4);\n  ppcStack_c4 = *(code ***)(pcVar6 + 4);\n  pcVar22 = pcVar6;\n  ppcStack_d0 = ppcVar7;\n  pcStack_b0 = pcVar1;\n  pcStack_ac = pcVar10;\n  pcStack_a8 = pcVar23;\n  puStack_a4 = puVar14;\n  ppcStack_a0 = ppcVar17;\n  puStack_9c = unaff_s5;\n  puStack_98 = unaff_s6;\n  FUN_00048168();\n  ppcStack_c8 = (code **)0x0;\n  ppcStack_cc = (code **)0x0;\n  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);\n  ppcVar7 = (code **)0x0;\n  ppcVar24 = (code **)0x0;\n  ppcVar12 = ppcStack_cc;\n  while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }\n  if ((int)ppcVar7 < 1) {\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }\n  else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }\n  if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcStack_d8 + -0x741c);\n  pcVar1 = FUN_0004b15c;\n  (*pcVar23)();\n  pcVar10 = pcVar23 + 0x7a074;\n  iStack_104 = **(int **)(pcVar23 + 0x72fb8);\n  uStack_110 = 0;\n  iStack_10c = 0;\n  uStack_108 = 0;\n  uVar8 = *(uint *)(pcVar22 + 4);\n  pcStack_100 = pcVar6;\n  iStack_fc = iVar11;\n  iStack_f8 = iVar13;\n  puStack_f4 = puVar14;\n  ppcStack_f0 = ppcVar17;\n  pcStack_ec = pcVar1;\n  if (0x7f < (int)uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  uVar8 = (uint)*(ushort *)pcVar22;\n  if (0x7f < uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);\n  iVar13 = 1;\n  iVar11 = iStack_10c;\n  saferealloc(uStack_110);\n  if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcVar23 + 0x72c58);\n  iVar20 = iStack_104;\n  (*pcVar23)();\n  if (iVar11 == 0) {\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }\n  else {\n    pcVar10 = (code *)0x0;\n  }\n  iVar16 = (iVar13 - iVar11) + 1;\n  if (param_4 < 0) {\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }\n  else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0004aa58(int param_1,code *param_2,undefined4 param_3,int param_4)" identifier (parameter_list "(int param_1,code *param_2,undefined4 param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  code *pcVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined2 *puVar4;\n  int iVar5;\n  code *pcVar6;\n  code **ppcVar7;\n  uint uVar8;\n  int iVar9;\n  code *pcVar10;\n  int iVar11;\n  code **ppcVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  int iVar16;\n  code **ppcVar17;\n  int iVar18;\n  undefined1 *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code **ppcVar24;\n  undefined4 uStack_110;\n  int iStack_10c;\n  undefined4 uStack_108;\n  int iStack_104;\n  code *pcStack_100;\n  int iStack_fc;\n  int iStack_f8;\n  undefined4 *puStack_f4;\n  code **ppcStack_f0;\n  code *pcStack_ec;\n  code *pcStack_d8;\n  code **ppcStack_d0;\n  code **ppcStack_cc;\n  code **ppcStack_c8;\n  code **ppcStack_c4;\n  code **ppcStack_c0;\n  code *pcStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  code *pcStack_b0;\n  code *pcStack_ac;\n  code *pcStack_a8;\n  undefined4 *puStack_a4;\n  code **ppcStack_a0;\n  undefined1 *puStack_9c;\n  undefined1 *puStack_98;\n  undefined1 uStack_6d;\n  code *pcStack_6c;\n  undefined1 auStack_68 [4];\n  int iStack_64;\n  code *pcStack_60;\n  code *pcStack_5c;\n  int iStack_58;\n  undefined4 *puStack_54;\n  code **ppcStack_50;\n  undefined4 local_24;\n  code *local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000be114;\n  pcVar10 = (code *)(param_1 + 0xf8);\n  ppcVar17 = &local_20;\n  puVar14 = &local_24;\n  while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  ppcVar7 = ppcVar17;\n  puVar21 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_64 = **(int **)(puVar21 + 0x735a4);\n  pcStack_60 = pcVar1;\n  pcStack_5c = pcVar10;\n  iStack_58 = param_1;\n  puStack_54 = puVar14;\n  ppcStack_50 = ppcVar17;\n  if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }\n  if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {\n    return;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x73244);\n  (*pcVar22)();\n  pcStack_d8 = pcVar22 + 0x7a4d4;\n  iStack_b4 = **(int **)(pcVar22 + 0x73418);\n  puVar19 = *(undefined4 **)(param_2 + 0x14);\n  uStack_b8 = 0;\n  iVar11 = *(int *)(param_2 + 4);\n  ppcStack_c4 = *(code ***)(pcVar6 + 4);\n  pcVar22 = pcVar6;\n  ppcStack_d0 = ppcVar7;\n  pcStack_b0 = pcVar1;\n  pcStack_ac = pcVar10;\n  pcStack_a8 = pcVar23;\n  puStack_a4 = puVar14;\n  ppcStack_a0 = ppcVar17;\n  puStack_9c = unaff_s5;\n  puStack_98 = unaff_s6;\n  FUN_00048168();\n  ppcStack_c8 = (code **)0x0;\n  ppcStack_cc = (code **)0x0;\n  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);\n  ppcVar7 = (code **)0x0;\n  ppcVar24 = (code **)0x0;\n  ppcVar12 = ppcStack_cc;\n  while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }\n  if ((int)ppcVar7 < 1) {\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }\n  else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }\n  if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcStack_d8 + -0x741c);\n  pcVar1 = FUN_0004b15c;\n  (*pcVar23)();\n  pcVar10 = pcVar23 + 0x7a074;\n  iStack_104 = **(int **)(pcVar23 + 0x72fb8);\n  uStack_110 = 0;\n  iStack_10c = 0;\n  uStack_108 = 0;\n  uVar8 = *(uint *)(pcVar22 + 4);\n  pcStack_100 = pcVar6;\n  iStack_fc = iVar11;\n  iStack_f8 = iVar13;\n  puStack_f4 = puVar14;\n  ppcStack_f0 = ppcVar17;\n  pcStack_ec = pcVar1;\n  if (0x7f < (int)uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  uVar8 = (uint)*(ushort *)pcVar22;\n  if (0x7f < uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);\n  iVar13 = 1;\n  iVar11 = iStack_10c;\n  saferealloc(uStack_110);\n  if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcVar23 + 0x72c58);\n  iVar20 = iStack_104;\n  (*pcVar23)();\n  if (iVar11 == 0) {\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }\n  else {\n    pcVar10 = (code *)0x0;\n  }\n  iVar16 = (iVar13 - iVar11) + 1;\n  if (param_4 < 0) {\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }\n  else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined2 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "code **ppcVar7;" type_identifier (pointer_declarator "**ppcVar7" * (pointer_declarator "*ppcVar7" * identifier)) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "code **ppcVar12;" type_identifier (pointer_declarator "**ppcVar12" * (pointer_declarator "*ppcVar12" * identifier)) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "code **ppcVar17;" type_identifier (pointer_declarator "**ppcVar17" * (pointer_declarator "*ppcVar17" * identifier)) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined1 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined1 *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "code **ppcVar24;" type_identifier (pointer_declarator "**ppcVar24" * (pointer_declarator "*ppcVar24" * identifier)) ;) (declaration "undefined4 uStack_110;" type_identifier identifier ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "code *pcStack_100;" type_identifier (pointer_declarator "*pcStack_100" * identifier) ;) (declaration "int iStack_fc;" primitive_type identifier ;) (declaration "int iStack_f8;" primitive_type identifier ;) (declaration "undefined4 *puStack_f4;" type_identifier (pointer_declarator "*puStack_f4" * identifier) ;) (declaration "code **ppcStack_f0;" type_identifier (pointer_declarator "**ppcStack_f0" * (pointer_declarator "*ppcStack_f0" * identifier)) ;) (declaration "code *pcStack_ec;" type_identifier (pointer_declarator "*pcStack_ec" * identifier) ;) (declaration "code *pcStack_d8;" type_identifier (pointer_declarator "*pcStack_d8" * identifier) ;) (declaration "code **ppcStack_d0;" type_identifier (pointer_declarator "**ppcStack_d0" * (pointer_declarator "*ppcStack_d0" * identifier)) ;) (declaration "code **ppcStack_cc;" type_identifier (pointer_declarator "**ppcStack_cc" * (pointer_declarator "*ppcStack_cc" * identifier)) ;) (declaration "code **ppcStack_c8;" type_identifier (pointer_declarator "**ppcStack_c8" * (pointer_declarator "*ppcStack_c8" * identifier)) ;) (declaration "code **ppcStack_c4;" type_identifier (pointer_declarator "**ppcStack_c4" * (pointer_declarator "*ppcStack_c4" * identifier)) ;) (declaration "code **ppcStack_c0;" type_identifier (pointer_declarator "**ppcStack_c0" * (pointer_declarator "*ppcStack_c0" * identifier)) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "undefined4 uStack_b8;" type_identifier identifier ;) (declaration "int iStack_b4;" primitive_type identifier ;) (declaration "code *pcStack_b0;" type_identifier (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "code *pcStack_a8;" type_identifier (pointer_declarator "*pcStack_a8" * identifier) ;) (declaration "undefined4 *puStack_a4;" type_identifier (pointer_declarator "*puStack_a4" * identifier) ;) (declaration "code **ppcStack_a0;" type_identifier (pointer_declarator "**ppcStack_a0" * (pointer_declarator "*ppcStack_a0" * identifier)) ;) (declaration "undefined1 *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "undefined1 *puStack_98;" type_identifier (pointer_declarator "*puStack_98" * identifier) ;) (declaration "undefined1 uStack_6d;" type_identifier identifier ;) (declaration "code *pcStack_6c;" type_identifier (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "undefined1 auStack_68 [4];" type_identifier (array_declarator "auStack_68 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "code *pcStack_60;" type_identifier (pointer_declarator "*pcStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "int iStack_58;" primitive_type identifier ;) (declaration "undefined4 *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "code **ppcStack_50;" type_identifier (pointer_declarator "**ppcStack_50" * (pointer_declarator "*ppcStack_50" * identifier)) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "code *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000be114;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_000be114" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" * (cast_expression "(int *)PTR___stack_chk_guard_000be114" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar10 = (code *)(param_1 + 0xf8);" (assignment_expression "pcVar10 = (code *)(param_1 + 0xf8)" identifier = (cast_expression "(code *)(param_1 + 0xf8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) ;) (expression_statement "ppcVar17 = &local_20;" (assignment_expression "ppcVar17 = &local_20" identifier = (pointer_expression "&local_20" & identifier)) ;) (expression_statement "puVar14 = &local_24;" (assignment_expression "puVar14 = &local_24" identifier = (pointer_expression "&local_24" & identifier)) ;) (while_statement "while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }" while (parenthesized_expression "(pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1)" ( (comma_expression "pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1" (assignment_expression "pcVar23 = pcVar10" identifier = identifier) , (comma_expression "pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1" (assignment_expression "pcVar1 = (code *)bufchain_size()" identifier = (cast_expression "(code *)bufchain_size()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bufchain_size()" identifier (argument_list "()" ( ))))) , (binary_expression "5 < (int)pcVar1" number_literal < (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)))) )) (compound_statement "{\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }" { (expression_statement "bufchain_prefix(pcVar10,puVar14);" (call_expression "bufchain_prefix(pcVar10,puVar14)" identifier (argument_list "(pcVar10,puVar14)" ( identifier , identifier ))) ;) (if_statement "if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }" if (parenthesized_expression "((int)(pcVar1 + -4) <= (int)local_20)" ( (binary_expression "(int)(pcVar1 + -4) <= (int)local_20" (cast_expression "(int)(pcVar1 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -4)" ( (binary_expression "pcVar1 + -4" identifier + number_literal) ))) <= (cast_expression "(int)local_20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_20 = pcVar1 + -5;\n    }" { (expression_statement "local_20 = pcVar1 + -5;" (assignment_expression "local_20 = pcVar1 + -5" identifier = (binary_expression "pcVar1 + -5" identifier + number_literal)) ;) })) (expression_statement "(*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);" (call_expression "(*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20)" (parenthesized_expression "(*(code *)PTR_printer_job_data_000bd630)" ( (pointer_expression "*(code *)PTR_printer_job_data_000bd630" * (cast_expression "(code *)PTR_printer_job_data_000bd630" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x104),local_24,local_20)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x104)" * (cast_expression "(undefined4 *)(param_1 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "param_2 = local_20;" (assignment_expression "param_2 = local_20" identifier = identifier) ;) (expression_statement "bufchain_consume(pcVar10);" (call_expression "bufchain_consume(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) })) (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }" if (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_000be114)" ( (binary_expression "local_1c == *(int *)PTR___stack_chk_guard_000be114" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" * (cast_expression "(int *)PTR___stack_chk_guard_000be114" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "ppcVar7 = ppcVar17;" (assignment_expression "ppcVar7 = ppcVar17" identifier = identifier) ;) (expression_statement "puVar21 = PTR___stack_chk_fail_000bddb4;" (assignment_expression "puVar21 = PTR___stack_chk_fail_000bddb4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000bddb4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000bddb4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000bddb4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000bddb4" * (cast_expression "(code *)PTR___stack_chk_fail_000bddb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_64 = **(int **)(puVar21 + 0x735a4);" (assignment_expression "iStack_64 = **(int **)(puVar21 + 0x735a4)" identifier = (pointer_expression "**(int **)(puVar21 + 0x735a4)" * (pointer_expression "*(int **)(puVar21 + 0x735a4)" * (cast_expression "(int **)(puVar21 + 0x735a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x735a4)" ( (binary_expression "puVar21 + 0x735a4" identifier + number_literal) )))))) ;) (expression_statement "pcStack_60 = pcVar1;" (assignment_expression "pcStack_60 = pcVar1" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar10;" (assignment_expression "pcStack_5c = pcVar10" identifier = identifier) ;) (expression_statement "iStack_58 = param_1;" (assignment_expression "iStack_58 = param_1" identifier = identifier) ;) (expression_statement "puStack_54 = puVar14;" (assignment_expression "puStack_54 = puVar14" identifier = identifier) ;) (expression_statement "ppcStack_50 = ppcVar17;" (assignment_expression "ppcStack_50 = ppcVar17" identifier = identifier) ;) (if_statement "if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }" if (parenthesized_expression "((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0))" ( (binary_expression "(*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)" (parenthesized_expression "(*(int *)(pcVar23 + 0xec) != 0)" ( (binary_expression "*(int *)(pcVar23 + 0xec) != 0" (pointer_expression "*(int *)(pcVar23 + 0xec)" * (cast_expression "(int *)(pcVar23 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0xec)" ( (binary_expression "pcVar23 + 0xec" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)" ( (comma_expression "pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0" (assignment_expression "pcVar6 = pcVar23" identifier = identifier) , (binary_expression "*(int *)(pcVar23 + 0xf0) != 0" (pointer_expression "*(int *)(pcVar23 + 0xf0)" * (cast_expression "(int *)(pcVar23 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0xf0)" ( (binary_expression "pcVar23 + 0xf0" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }" { (expression_statement "FUN_0004aa58(pcVar23);" (call_expression "FUN_0004aa58(pcVar23)" identifier (argument_list "(pcVar23)" ( identifier ))) ;) (expression_statement "pcVar1 = pcVar23 + 0xf8;" (assignment_expression "pcVar1 = pcVar23 + 0xf8" identifier = (binary_expression "pcVar23 + 0xf8" identifier + number_literal)) ;) (expression_statement "unaff_s5 = auStack_68;" (assignment_expression "unaff_s5 = auStack_68" identifier = identifier) ;) (expression_statement "ppcVar17 = &pcStack_6c;" (assignment_expression "ppcVar17 = &pcStack_6c" identifier = (pointer_expression "&pcStack_6c" & identifier)) ;) (expression_statement "puVar14 = (undefined4 *)0x1b;" (assignment_expression "puVar14 = (undefined4 *)0x1b" identifier = (cast_expression "(undefined4 *)0x1b" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s6 = &uStack_6d;" (assignment_expression "unaff_s6 = &uStack_6d" identifier = (pointer_expression "&uStack_6d" & identifier)) ;) (while_statement "while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }" while (parenthesized_expression "(pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10)" ( (comma_expression "pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10" (assignment_expression "pcVar10 = (code *)bufchain_size(pcVar1)" identifier = (cast_expression "(code *)bufchain_size(pcVar1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bufchain_size(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))))) , (binary_expression "0 < (int)pcVar10" number_literal < (cast_expression "(int)pcVar10" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }" { (expression_statement "bufchain_prefix(pcVar1,ppcVar17,unaff_s5);" (call_expression "bufchain_prefix(pcVar1,ppcVar17,unaff_s5)" identifier (argument_list "(pcVar1,ppcVar17,unaff_s5)" ( identifier , identifier , identifier ))) ;) (expression_statement "uStack_6d = *pcStack_6c;" (assignment_expression "uStack_6d = *pcStack_6c" identifier = (pointer_expression "*pcStack_6c" * identifier)) ;) (expression_statement "ppcVar7 = (code **)0x1;" (assignment_expression "ppcVar7 = (code **)0x1" identifier = (cast_expression "(code **)0x1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }" if (parenthesized_expression "(((byte)uStack_6d & 0x7f) == 0x1b)" ( (binary_expression "((byte)uStack_6d & 0x7f) == 0x1b" (parenthesized_expression "((byte)uStack_6d & 0x7f)" ( (binary_expression "(byte)uStack_6d & 0x7f" (cast_expression "(byte)uStack_6d" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }" { (expression_statement "param_2 = pcVar10;" (assignment_expression "param_2 = pcVar10" identifier = identifier) ;) (expression_statement "bufchain_consume(pcVar1);" (call_expression "bufchain_consume(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "(**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);" (call_expression "(**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6)" (parenthesized_expression "(**(code **)(puVar21 + 0x72ac0))" ( (pointer_expression "**(code **)(puVar21 + 0x72ac0)" * (pointer_expression "*(code **)(puVar21 + 0x72ac0)" * (cast_expression "(code **)(puVar21 + 0x72ac0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x72ac0)" ( (binary_expression "puVar21 + 0x72ac0" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(pcVar23 + 0x104),unaff_s6)" ( (pointer_expression "*(undefined4 *)(pcVar23 + 0x104)" * (cast_expression "(undefined4 *)(pcVar23 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x104)" ( (binary_expression "pcVar23 + 0x104" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "param_2 = (code *)0x1;" (assignment_expression "param_2 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bufchain_consume(pcVar1);" (call_expression "bufchain_consume(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) })) (expression_statement "pcVar6 = *(code **)(pcVar23 + 0x104);" (assignment_expression "pcVar6 = *(code **)(pcVar23 + 0x104)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x104)" * (cast_expression "(code **)(pcVar23 + 0x104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x104)" ( (binary_expression "pcVar23 + 0x104" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar21 + 0x72ac4))();" (call_expression "(**(code **)(puVar21 + 0x72ac4))()" (parenthesized_expression "(**(code **)(puVar21 + 0x72ac4))" ( (pointer_expression "**(code **)(puVar21 + 0x72ac4)" * (pointer_expression "*(code **)(puVar21 + 0x72ac4)" * (cast_expression "(code **)(puVar21 + 0x72ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x72ac4)" ( (binary_expression "puVar21 + 0x72ac4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(pcVar23 + 0x104) = 0;" (assignment_expression "*(undefined4 *)(pcVar23 + 0x104) = 0" (pointer_expression "*(undefined4 *)(pcVar23 + 0x104)" * (cast_expression "(undefined4 *)(pcVar23 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x104)" ( (binary_expression "pcVar23 + 0x104" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(pcVar23 + 0xf0) = 0;" (assignment_expression "*(undefined4 *)(pcVar23 + 0xf0) = 0" (pointer_expression "*(undefined4 *)(pcVar23 + 0xf0)" * (cast_expression "(undefined4 *)(pcVar23 + 0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0xf0)" ( (binary_expression "pcVar23 + 0xf0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(pcVar23 + 0xec) = 0;" (assignment_expression "*(undefined4 *)(pcVar23 + 0xec) = 0" (pointer_expression "*(undefined4 *)(pcVar23 + 0xec)" * (cast_expression "(undefined4 *)(pcVar23 + 0xec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0xec)" ( (binary_expression "pcVar23 + 0xec" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {\n    return;\n  }" if (parenthesized_expression "(iStack_64 == **(int **)(puVar21 + 0x735a4))" ( (binary_expression "iStack_64 == **(int **)(puVar21 + 0x735a4)" identifier == (pointer_expression "**(int **)(puVar21 + 0x735a4)" * (pointer_expression "*(int **)(puVar21 + 0x735a4)" * (cast_expression "(int **)(puVar21 + 0x735a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x735a4)" ( (binary_expression "puVar21 + 0x735a4" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar22 = *(code **)(puVar21 + 0x73244);" (assignment_expression "pcVar22 = *(code **)(puVar21 + 0x73244)" identifier = (pointer_expression "*(code **)(puVar21 + 0x73244)" * (cast_expression "(code **)(puVar21 + 0x73244)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x73244)" ( (binary_expression "puVar21 + 0x73244" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_d8 = pcVar22 + 0x7a4d4;" (assignment_expression "pcStack_d8 = pcVar22 + 0x7a4d4" identifier = (binary_expression "pcVar22 + 0x7a4d4" identifier + number_literal)) ;) (expression_statement "iStack_b4 = **(int **)(pcVar22 + 0x73418);" (assignment_expression "iStack_b4 = **(int **)(pcVar22 + 0x73418)" identifier = (pointer_expression "**(int **)(pcVar22 + 0x73418)" * (pointer_expression "*(int **)(pcVar22 + 0x73418)" * (cast_expression "(int **)(pcVar22 + 0x73418)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x73418)" ( (binary_expression "pcVar22 + 0x73418" identifier + number_literal) )))))) ;) (expression_statement "puVar19 = *(undefined4 **)(param_2 + 0x14);" (assignment_expression "puVar19 = *(undefined4 **)(param_2 + 0x14)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 0x14)" * (cast_expression "(undefined4 **)(param_2 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uStack_b8 = 0;" (assignment_expression "uStack_b8 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = *(int *)(param_2 + 4);" (assignment_expression "iVar11 = *(int *)(param_2 + 4)" identifier = (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "ppcStack_c4 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcStack_c4 = *(code ***)(pcVar6 + 4)" identifier = (pointer_expression "*(code ***)(pcVar6 + 4)" * (cast_expression "(code ***)(pcVar6 + 4)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" identifier = identifier) ;) (expression_statement "ppcStack_d0 = ppcVar7;" (assignment_expression "ppcStack_d0 = ppcVar7" identifier = identifier) ;) (expression_statement "pcStack_b0 = pcVar1;" (assignment_expression "pcStack_b0 = pcVar1" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar10;" (assignment_expression "pcStack_ac = pcVar10" identifier = identifier) ;) (expression_statement "pcStack_a8 = pcVar23;" (assignment_expression "pcStack_a8 = pcVar23" identifier = identifier) ;) (expression_statement "puStack_a4 = puVar14;" (assignment_expression "puStack_a4 = puVar14" identifier = identifier) ;) (expression_statement "ppcStack_a0 = ppcVar17;" (assignment_expression "ppcStack_a0 = ppcVar17" identifier = identifier) ;) (expression_statement "puStack_9c = unaff_s5;" (assignment_expression "puStack_9c = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_98 = unaff_s6;" (assignment_expression "puStack_98 = unaff_s6" identifier = identifier) ;) (expression_statement "FUN_00048168();" (call_expression "FUN_00048168()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcStack_cc = (code **)0x0;" (assignment_expression "ppcStack_cc = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);" (assignment_expression "pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" identifier = (cast_expression "(code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98" (pointer_expression "*(int *)(pcStack_d8 + -0x7bb0)" * (cast_expression "(int *)(pcStack_d8 + -0x7bb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7bb0)" ( (binary_expression "pcStack_d8 + -0x7bb0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppcVar7 = (code **)0x0;" (assignment_expression "ppcVar7 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar24 = (code **)0x0;" (assignment_expression "ppcVar24 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar12 = ppcStack_cc;" (assignment_expression "ppcVar12 = ppcStack_cc" identifier = identifier) ;) (while_statement "while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }" while (parenthesized_expression "(ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11)" ( (comma_expression "ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11" (assignment_expression "ppcStack_cc = ppcVar12" identifier = identifier) , (comma_expression "iVar13 = iVar11 + -1, 0 < iVar11" (assignment_expression "iVar13 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) , (binary_expression "0 < iVar11" number_literal < identifier))) )) (compound_statement "{\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }" { (expression_statement "ppcVar17 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcVar17 = *(code ***)(pcVar6 + 4)" identifier = (pointer_expression "*(code ***)(pcVar6 + 4)" * (cast_expression "(code ***)(pcVar6 + 4)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" identifier = identifier) ;) (expression_statement "(*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);" (call_expression "(*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8)" (parenthesized_expression "(*(code *)ppcStack_d0)" ( (pointer_expression "*(code *)ppcStack_d0" * (cast_expression "(code *)ppcStack_d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6,puVar19,&uStack_b8)" ( identifier , identifier , (pointer_expression "&uStack_b8" & identifier) ))) ;) (expression_statement "ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);" (assignment_expression "ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17)" identifier = (cast_expression "(code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar6 + 4) - (int)ppcVar17)" ( (binary_expression "*(int *)(pcVar6 + 4) - (int)ppcVar17" (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) - (cast_expression "(int)ppcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar14 = puVar19 + 3;" (assignment_expression "puVar14 = puVar19 + 3" identifier = (binary_expression "puVar19 + 3" identifier + number_literal)) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) (if_statement "if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }" if (parenthesized_expression "(ppcVar24 == ppcVar12)" ( (binary_expression "ppcVar24 == ppcVar12" identifier == identifier) )) (compound_statement "{\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }" { (expression_statement "iVar20 = *(int *)pcVar6;" (assignment_expression "iVar20 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar22 = (code *)((int)ppcStack_cc + iVar20);" (assignment_expression "pcVar22 = (code *)((int)ppcStack_cc + iVar20)" identifier = (cast_expression "(code *)((int)ppcStack_cc + iVar20)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcStack_cc + iVar20)" ( (binary_expression "(int)ppcStack_cc + iVar20" (cast_expression "(int)ppcStack_cc" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);" (assignment_expression "ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" identifier = (cast_expression "(code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x72b4))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x72b4)" * (pointer_expression "*(code **)(pcStack_d8 + -0x72b4)" * (cast_expression "(code **)(pcStack_d8 + -0x72b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x72b4)" ( (binary_expression "pcStack_d8 + -0x72b4" identifier + number_literal) ))))) )) (argument_list "(pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" ( identifier , (binary_expression "(int)ppcVar17 + iVar20" (cast_expression "(int)ppcVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , identifier ))))) ;) (if_statement "if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }" if (parenthesized_expression "(ppcStack_c0 != (code **)0x0)" ( (binary_expression "ppcStack_c0 != (code **)0x0" identifier != (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }" { (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (goto_statement "goto LAB_0004affc;" goto statement_identifier ;) })) (if_statement "if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }" if (parenthesized_expression "((int)ppcVar12 < 2)" ( (binary_expression "(int)ppcVar12 < 2" (cast_expression "(int)ppcVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }" { (if_statement "if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;" if (parenthesized_expression "(ppcStack_c8 != (code **)0x0)" ( (binary_expression "ppcStack_c8 != (code **)0x0" identifier != (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0004b138;" goto statement_identifier ;)) (expression_statement "ppcStack_c8 = (code **)0x1;" (assignment_expression "ppcStack_c8 = (code **)0x1" identifier = (cast_expression "(code **)0x1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (goto_statement "goto LAB_0004affc;" goto statement_identifier ;) })) (expression_statement "iVar16 = (int)ppcVar7 + -1;" (assignment_expression "iVar16 = (int)ppcVar7 + -1" identifier = (binary_expression "(int)ppcVar7 + -1" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }" if (parenthesized_expression "(ppcStack_c8 != (code **)0x0)" ( (binary_expression "ppcStack_c8 != (code **)0x0" identifier != (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }" { (labeled_statement "LAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;" statement_identifier : (expression_statement "iVar16 = (int)ppcVar7 + -2;" (assignment_expression "iVar16 = (int)ppcVar7 + -2" identifier = (binary_expression "(int)ppcVar7 + -2" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;)) (if_statement "if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" if (parenthesized_expression "((int)ppcVar7 + -1 < 1)" ( (binary_expression "(int)ppcVar7 + -1 < 1" (binary_expression "(int)ppcVar7 + -1" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) < number_literal) )) (compound_statement "{\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a54" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);" (assignment_expression "ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24)" identifier = (cast_expression "(code **)((int)ppcStack_cc - (int)ppcVar24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcStack_cc - (int)ppcVar24)" ( (binary_expression "(int)ppcStack_cc - (int)ppcVar24" (cast_expression "(int)ppcStack_cc" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "ppcVar17 = ppcStack_cc;" (assignment_expression "ppcVar17 = ppcStack_cc" identifier = identifier) ;) (if_statement "if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }" { (if_statement "if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" if (parenthesized_expression "((code **)((int)ppcStack_c4 + 1) != ppcStack_cc)" ( (binary_expression "(code **)((int)ppcStack_c4 + 1) != ppcStack_cc" (cast_expression "(code **)((int)ppcStack_c4 + 1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcStack_c4 + 1)" ( (binary_expression "(int)ppcStack_c4 + 1" (cast_expression "(int)ppcStack_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) != identifier) )) (compound_statement "{\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a60" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;" (assignment_expression "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc" (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = (binary_expression "(int)ppcVar24 + (int)ppcStack_cc" (cast_expression "(int)ppcVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppcStack_cc" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }" else (compound_statement "{\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }" { (expression_statement "(**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);" (call_expression "(**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x76e0))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x76e0)" * (pointer_expression "*(code **)(pcStack_d8 + -0x76e0)" * (cast_expression "(code **)(pcStack_d8 + -0x76e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x76e0)" ( (binary_expression "pcStack_d8 + -0x76e0" identifier + number_literal) ))))) )) (argument_list "((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24)" ( (binary_expression "(int)ppcStack_cc + iVar20 + 1" (binary_expression "(int)ppcStack_cc + iVar20" (cast_expression "(int)ppcStack_cc" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) , (binary_expression "(int)ppcStack_cc + iVar20" (cast_expression "(int)ppcStack_cc" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , identifier ))) ;) (expression_statement "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;" (assignment_expression "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1" (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = (binary_expression "(int)ppcVar24 + (int)ppcVar17 + 1" (binary_expression "(int)ppcVar24 + (int)ppcVar17" (cast_expression "(int)ppcVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) ;) (if_statement "if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" if (parenthesized_expression "(0x7f < iVar16 - 1U)" ( (binary_expression "0x7f < iVar16 - 1U" number_literal < (binary_expression "iVar16 - 1U" identifier - number_literal)) )) (compound_statement "{\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a78" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;" (assignment_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1" (pointer_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6)" * (cast_expression "(char *)((int)ppcStack_c4 + *(int *)pcVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcStack_c4 + *(int *)pcVar6)" ( (binary_expression "(int)ppcStack_c4 + *(int *)pcVar6" (cast_expression "(int)ppcStack_c4" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )))) = (binary_expression "(char)iVar16 + -1" (cast_expression "(char)iVar16" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "ppcStack_c4 = ppcStack_cc;" (assignment_expression "ppcStack_c4 = ppcStack_cc" identifier = identifier) ;) }))) (expression_statement "ppcVar17 = ppcStack_c4;" (assignment_expression "ppcVar17 = ppcStack_c4" identifier = identifier) ;) (expression_statement "iVar20 = 3;" (assignment_expression "iVar20 = 3" identifier = number_literal) ;) (if_statement "if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }" if (parenthesized_expression "(ppcStack_c8 == (code **)0x0)" ( (binary_expression "ppcStack_c8 == (code **)0x0" identifier == (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        iVar20 = 2;\n      }" { (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" identifier = number_literal) ;) })) (if_statement "if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }" if (parenthesized_expression "(iVar13 < 1)" ( (binary_expression "iVar13 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }" { (labeled_statement "LAB_0004af8c:\n        iVar16 = *(int *)pcVar6;" statement_identifier : (expression_statement "iVar16 = *(int *)pcVar6;" (assignment_expression "iVar16 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) }) (else_clause "else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }" else (compound_statement "{\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }" { (do_statement "do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);" do (compound_statement "{\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        }" { (expression_statement "uVar3 = uStack_b8;" (assignment_expression "uVar3 = uStack_b8" identifier = identifier) ;) (expression_statement "iVar16 = *(int *)(pcVar6 + 4);" (assignment_expression "iVar16 = *(int *)(pcVar6 + 4)" identifier = (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);" (call_expression "(*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8)" (parenthesized_expression "(*(code *)ppcStack_d0)" ( (pointer_expression "*(code *)ppcStack_d0" * (cast_expression "(code *)ppcStack_d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6,puVar14,&uStack_b8)" ( identifier , identifier , (pointer_expression "&uStack_b8" & identifier) ))) ;) (expression_statement "iVar11 = *(int *)(pcVar6 + 4);" (assignment_expression "iVar11 = *(int *)(pcVar6 + 4)" identifier = (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(pcVar6 + 4) = iVar16;" (assignment_expression "*(int *)(pcVar6 + 4) = iVar16" (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }" if (parenthesized_expression "((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0))" ( (binary_expression "(ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)" (parenthesized_expression "(ppcVar12 != (code **)(iVar11 - iVar16))" ( (binary_expression "ppcVar12 != (code **)(iVar11 - iVar16)" identifier != (cast_expression "(code **)(iVar11 - iVar16)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 - iVar16)" ( (binary_expression "iVar11 - iVar16" identifier - identifier) )))) )) || (parenthesized_expression "(iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)" ( (comma_expression "iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0" (assignment_expression "iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x72b4))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x72b4)" * (pointer_expression "*(code **)(pcStack_d8 + -0x72b4)" * (cast_expression "(code **)(pcStack_d8 + -0x72b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x72b4)" ( (binary_expression "pcStack_d8 + -0x72b4" identifier + number_literal) ))))) )) (argument_list "((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16)" ( (binary_expression "(int)ppcVar17 + *(int *)pcVar6 + 1" (binary_expression "(int)ppcVar17 + *(int *)pcVar6" (cast_expression "(int)ppcVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) + number_literal) , (binary_expression "*(int *)pcVar6 + iVar16" (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }" { (labeled_statement "LAB_0004af7c:\n            uStack_b8 = uVar3;" statement_identifier : (expression_statement "uStack_b8 = uVar3;" (assignment_expression "uStack_b8 = uVar3" identifier = identifier) ;)) (expression_statement "param_4 = *(int *)(pcStack_d8 + -0x7f68);" (assignment_expression "param_4 = *(int *)(pcStack_d8 + -0x7f68)" identifier = (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) (if_statement "if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }" if (parenthesized_expression "(0x7f < iVar20 - 2U)" ( (binary_expression "0x7f < iVar20 - 2U" number_literal < (binary_expression "iVar20 - 2U" identifier - number_literal)) )) (compound_statement "{\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a98" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "param_4 + 0x3488" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0004af8c;" goto statement_identifier ;) })) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar14 + 3;" (assignment_expression "puVar14 = puVar14 + 3" identifier = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = uStack_b8;" (assignment_expression "uVar3 = uStack_b8" identifier = identifier) ;) (if_statement "if (iVar13 == 0) goto LAB_0004af7c;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004af7c;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar20 != 0x81)" ( (binary_expression "iVar20 != 0x81" identifier != number_literal) )) ;) (expression_statement "iVar16 = *(int *)pcVar6;" (assignment_expression "iVar16 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) }))) (expression_statement "*(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';" (assignment_expression "*(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~'" (pointer_expression "*(char *)((int)ppcStack_c4 + iVar16)" * (cast_expression "(char *)((int)ppcStack_c4 + iVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcStack_c4 + iVar16)" ( (binary_expression "(int)ppcStack_c4 + iVar16" (cast_expression "(int)ppcStack_c4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (binary_expression "(char)iVar20 + '~'" (cast_expression "(char)iVar20" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'~'" ' character '))) ;) (expression_statement "ppcStack_c4 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcStack_c4 = *(code ***)(pcVar6 + 4)" identifier = (pointer_expression "*(code ***)(pcVar6 + 4)" * (cast_expression "(code ***)(pcVar6 + 4)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" identifier = identifier) ;) (expression_statement "(*pcStack_bc)(pcVar6,0);" (call_expression "(*pcStack_bc)(pcVar6,0)" (parenthesized_expression "(*pcStack_bc)" ( (pointer_expression "*pcStack_bc" * identifier) )) (argument_list "(pcVar6,0)" ( identifier , number_literal ))) ;) (expression_statement "ppcStack_c8 = ppcStack_c0;" (assignment_expression "ppcStack_c8 = ppcStack_c0" identifier = identifier) ;) (expression_statement "ppcVar17 = ppcStack_c0;" (assignment_expression "ppcVar17 = ppcStack_c0" identifier = identifier) ;) (expression_statement "ppcVar7 = ppcStack_c0;" (assignment_expression "ppcVar7 = ppcStack_c0" identifier = identifier) ;) (expression_statement "puVar19 = puVar14;" (assignment_expression "puVar19 = puVar14" identifier = identifier) ;) (expression_statement "ppcVar24 = ppcStack_c0;" (assignment_expression "ppcVar24 = ppcStack_c0" identifier = identifier) ;) (expression_statement "ppcVar12 = ppcStack_c0;" (assignment_expression "ppcVar12 = ppcStack_c0" identifier = identifier) ;) }) (else_clause "else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }" else (compound_statement "{\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }" { (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (labeled_statement "LAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);" statement_identifier : (expression_statement "ppcVar7 = (code **)((int)ppcVar7 + 1);" (assignment_expression "ppcVar7 = (code **)((int)ppcVar7 + 1)" identifier = (cast_expression "(code **)((int)ppcVar7 + 1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar7 + 1)" ( (binary_expression "(int)ppcVar7 + 1" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "puVar19 = puVar14;" (assignment_expression "puVar19 = puVar14" identifier = identifier) ;) (expression_statement "ppcVar24 = ppcVar12;" (assignment_expression "ppcVar24 = ppcVar12" identifier = identifier) ;) (expression_statement "ppcVar12 = ppcVar17;" (assignment_expression "ppcVar12 = ppcVar17" identifier = identifier) ;) (if_statement "if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }" if (parenthesized_expression "(ppcVar7 == (code **)0x80)" ( (binary_expression "ppcVar7 == (code **)0x80" identifier == (cast_expression "(code **)0x80" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }" { (expression_statement "*(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;" (assignment_expression "*(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f" (pointer_expression "*(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6)" * (cast_expression "(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcStack_c4 + *(int *)pcVar6)" ( (binary_expression "(int)ppcStack_c4 + *(int *)pcVar6" (cast_expression "(int)ppcStack_c4" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )))) = number_literal) ;) (expression_statement "ppcStack_c4 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcStack_c4 = *(code ***)(pcVar6 + 4)" identifier = (pointer_expression "*(code ***)(pcVar6 + 4)" * (cast_expression "(code ***)(pcVar6 + 4)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" identifier = identifier) ;) (expression_statement "(*pcStack_bc)(pcVar6,0);" (call_expression "(*pcStack_bc)(pcVar6,0)" (parenthesized_expression "(*pcStack_bc)" ( (pointer_expression "*pcStack_bc" * identifier) )) (argument_list "(pcVar6,0)" ( identifier , number_literal ))) ;) (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar17 = (code **)0x0;" (assignment_expression "ppcVar17 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar7 = (code **)0x0;" (assignment_expression "ppcVar7 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar24 = (code **)0x0;" (assignment_expression "ppcVar24 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar12 = (code **)0x0;" (assignment_expression "ppcVar12 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) })) }))) })) (if_statement "if ((int)ppcVar7 < 1) {\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }\n  else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }" if (parenthesized_expression "((int)ppcVar7 < 1)" ( (binary_expression "(int)ppcVar7 < 1" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }" { (expression_statement "*(code ***)(pcVar6 + 4) = ppcStack_c4;" (assignment_expression "*(code ***)(pcVar6 + 4) = ppcStack_c4" (pointer_expression "*(code ***)(pcVar6 + 4)" * (cast_expression "(code ***)(pcVar6 + 4)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }" else (compound_statement "{\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }" { (if_statement "if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }" if (parenthesized_expression "(0x80 < (int)ppcVar7)" ( (binary_expression "0x80 < (int)ppcVar7" number_literal < (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a88" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;" (assignment_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1" (pointer_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6)" * (cast_expression "(char *)((int)ppcStack_c4 + *(int *)pcVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcStack_c4 + *(int *)pcVar6)" ( (binary_expression "(int)ppcStack_c4 + *(int *)pcVar6" (cast_expression "(int)ppcStack_c4" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )))) = (binary_expression "(char)ppcVar7 + -1" (cast_expression "(char)ppcVar7" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) }))) (if_statement "if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {\n    return;\n  }" if (parenthesized_expression "(iStack_b4 == **(int **)(pcStack_d8 + -0x70bc))" ( (binary_expression "iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)" identifier == (pointer_expression "**(int **)(pcStack_d8 + -0x70bc)" * (pointer_expression "*(int **)(pcStack_d8 + -0x70bc)" * (cast_expression "(int **)(pcStack_d8 + -0x70bc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x70bc)" ( (binary_expression "pcStack_d8 + -0x70bc" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar23 = *(code **)(pcStack_d8 + -0x741c);" (assignment_expression "pcVar23 = *(code **)(pcStack_d8 + -0x741c)" identifier = (pointer_expression "*(code **)(pcStack_d8 + -0x741c)" * (cast_expression "(code **)(pcStack_d8 + -0x741c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x741c)" ( (binary_expression "pcStack_d8 + -0x741c" identifier + number_literal) ))))) ;) (expression_statement "pcVar1 = FUN_0004b15c;" (assignment_expression "pcVar1 = FUN_0004b15c" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar10 = pcVar23 + 0x7a074;" (assignment_expression "pcVar10 = pcVar23 + 0x7a074" identifier = (binary_expression "pcVar23 + 0x7a074" identifier + number_literal)) ;) (expression_statement "iStack_104 = **(int **)(pcVar23 + 0x72fb8);" (assignment_expression "iStack_104 = **(int **)(pcVar23 + 0x72fb8)" identifier = (pointer_expression "**(int **)(pcVar23 + 0x72fb8)" * (pointer_expression "*(int **)(pcVar23 + 0x72fb8)" * (cast_expression "(int **)(pcVar23 + 0x72fb8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x72fb8)" ( (binary_expression "pcVar23 + 0x72fb8" identifier + number_literal) )))))) ;) (expression_statement "uStack_110 = 0;" (assignment_expression "uStack_110 = 0" identifier = number_literal) ;) (expression_statement "iStack_10c = 0;" (assignment_expression "iStack_10c = 0" identifier = number_literal) ;) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = *(uint *)(pcVar22 + 4);" (assignment_expression "uVar8 = *(uint *)(pcVar22 + 4)" identifier = (pointer_expression "*(uint *)(pcVar22 + 4)" * (cast_expression "(uint *)(pcVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 4)" ( (binary_expression "pcVar22 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcStack_100 = pcVar6;" (assignment_expression "pcStack_100 = pcVar6" identifier = identifier) ;) (expression_statement "iStack_fc = iVar11;" (assignment_expression "iStack_fc = iVar11" identifier = identifier) ;) (expression_statement "iStack_f8 = iVar13;" (assignment_expression "iStack_f8 = iVar13" identifier = identifier) ;) (expression_statement "puStack_f4 = puVar14;" (assignment_expression "puStack_f4 = puVar14" identifier = identifier) ;) (expression_statement "ppcStack_f0 = ppcVar17;" (assignment_expression "ppcStack_f0 = ppcVar17" identifier = identifier) ;) (expression_statement "pcStack_ec = pcVar1;" (assignment_expression "pcStack_ec = pcVar1" identifier = identifier) ;) (if_statement "if (0x7f < (int)uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }" if (parenthesized_expression "(0x7f < (int)uVar8)" ( (binary_expression "0x7f < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }" { (do_statement "do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);" do (compound_statement "{\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    }" { (expression_statement "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);" (call_expression "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" identifier (argument_list "(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" ( (pointer_expression "&uStack_110" & identifier) , (binary_expression "(uVar8 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar8 | 0xffffff80)" ( (binary_expression "uVar8 | 0xffffff80" identifier | number_literal) )) & number_literal) ))) ;) (expression_statement "uVar8 = (int)uVar8 >> 7;" (assignment_expression "uVar8 = (int)uVar8 >> 7" identifier = (binary_expression "(int)uVar8 >> 7" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }) while (parenthesized_expression "(0x7f < (int)uVar8)" ( (binary_expression "0x7f < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "FUN_00048168(&uStack_110,uVar8 & 0xff);" (call_expression "FUN_00048168(&uStack_110,uVar8 & 0xff)" identifier (argument_list "(&uStack_110,uVar8 & 0xff)" ( (pointer_expression "&uStack_110" & identifier) , (binary_expression "uVar8 & 0xff" identifier & number_literal) ))) ;) (expression_statement "uVar8 = (uint)*(ushort *)pcVar22;" (assignment_expression "uVar8 = (uint)*(ushort *)pcVar22" identifier = (binary_expression "(uint)*(ushort *)pcVar22" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)pcVar22" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (0x7f < uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }" if (parenthesized_expression "(0x7f < uVar8)" ( (binary_expression "0x7f < uVar8" number_literal < identifier) )) (compound_statement "{\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }" { (do_statement "do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);" do (compound_statement "{\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    }" { (expression_statement "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);" (call_expression "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" identifier (argument_list "(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" ( (pointer_expression "&uStack_110" & identifier) , (binary_expression "(uVar8 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar8 | 0xffffff80)" ( (binary_expression "uVar8 | 0xffffff80" identifier | number_literal) )) & number_literal) ))) ;) (expression_statement "uVar8 = (int)uVar8 >> 7;" (assignment_expression "uVar8 = (int)uVar8 >> 7" identifier = (binary_expression "(int)uVar8 >> 7" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }) while (parenthesized_expression "(0x7f < uVar8)" ( (binary_expression "0x7f < uVar8" number_literal < identifier) )) ;) })) (expression_statement "FUN_00048168(&uStack_110,uVar8 & 0xff);" (call_expression "FUN_00048168(&uStack_110,uVar8 & 0xff)" identifier (argument_list "(&uStack_110,uVar8 & 0xff)" ( (pointer_expression "&uStack_110" & identifier) , (binary_expression "uVar8 & 0xff" identifier & number_literal) ))) ;) (expression_statement "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);" (call_expression "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4)" identifier (argument_list "(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4)" ( (pointer_expression "&uStack_110" & identifier) , identifier , (binary_expression "*(int *)(pcVar23 + 0x724c4) + -0x7cc4" (pointer_expression "*(int *)(pcVar23 + 0x724c4)" * (cast_expression "(int *)(pcVar23 + 0x724c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x724c4)" ( (binary_expression "pcVar23 + 0x724c4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);" (call_expression "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8)" identifier (argument_list "(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8)" ( (pointer_expression "&uStack_110" & identifier) , identifier , (binary_expression "*(int *)(pcVar23 + 0x724c4) + -0x7df8" (pointer_expression "*(int *)(pcVar23 + 0x724c4)" * (cast_expression "(int *)(pcVar23 + 0x724c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x724c4)" ( (binary_expression "pcVar23 + 0x724c4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);" (call_expression "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08)" identifier (argument_list "(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08)" ( (pointer_expression "&uStack_110" & identifier) , identifier , (binary_expression "*(int *)(pcVar23 + 0x724c4) + -0x6e08" (pointer_expression "*(int *)(pcVar23 + 0x724c4)" * (cast_expression "(int *)(pcVar23 + 0x724c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x724c4)" ( (binary_expression "pcVar23 + 0x724c4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "iVar11 = iStack_10c;" (assignment_expression "iVar11 = iStack_10c" identifier = identifier) ;) (expression_statement "saferealloc(uStack_110);" (call_expression "saferealloc(uStack_110)" identifier (argument_list "(uStack_110)" ( identifier ))) ;) (if_statement "if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {\n    return;\n  }" if (parenthesized_expression "(iStack_104 == **(int **)(pcVar23 + 0x72fb8))" ( (binary_expression "iStack_104 == **(int **)(pcVar23 + 0x72fb8)" identifier == (pointer_expression "**(int **)(pcVar23 + 0x72fb8)" * (pointer_expression "*(int **)(pcVar23 + 0x72fb8)" * (cast_expression "(int **)(pcVar23 + 0x72fb8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x72fb8)" ( (binary_expression "pcVar23 + 0x72fb8" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar23 = *(code **)(pcVar23 + 0x72c58);" (assignment_expression "pcVar23 = *(code **)(pcVar23 + 0x72c58)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x72c58)" * (cast_expression "(code **)(pcVar23 + 0x72c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x72c58)" ( (binary_expression "pcVar23 + 0x72c58" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = iStack_104;" (assignment_expression "iVar20 = iStack_104" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar11 == 0) {\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }\n  else {\n    pcVar10 = (code *)0x0;\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }" { (if_statement "if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }" if (parenthesized_expression "(*(int *)(iVar20 + 0x1a4) != 0)" ( (binary_expression "*(int *)(iVar20 + 0x1a4) != 0" (pointer_expression "*(int *)(iVar20 + 0x1a4)" * (cast_expression "(int *)(iVar20 + 0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1a4)" ( (binary_expression "iVar20 + 0x1a4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      pcVar10 = (code *)0x0;\n    }" { (expression_statement "pcVar10 = (code *)0x0;" (assignment_expression "pcVar10 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    pcVar10 = (code *)0x0;\n  }" else (compound_statement "{\n    pcVar10 = (code *)0x0;\n  }" { (expression_statement "pcVar10 = (code *)0x0;" (assignment_expression "pcVar10 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "iVar16 = (iVar13 - iVar11) + 1;" (assignment_expression "iVar16 = (iVar13 - iVar11) + 1" identifier = (binary_expression "(iVar13 - iVar11) + 1" (parenthesized_expression "(iVar13 - iVar11)" ( (binary_expression "iVar13 - iVar11" identifier - identifier) )) + number_literal)) ;) (if_statement "if (param_4 < 0) {\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }\n  else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(param_4 < 0)" ( (binary_expression "param_4 < 0" identifier < number_literal) )) (compound_statement "{\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }" { (if_statement "if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }" if (parenthesized_expression "(-param_4 <= iVar16)" ( (binary_expression "-param_4 <= iVar16" (unary_expression "-param_4" - identifier) <= identifier) )) (compound_statement "{\n      iVar16 = -param_4;\n    }" { (expression_statement "iVar16 = -param_4;" (assignment_expression "iVar16 = -param_4" identifier = (unary_expression "-param_4" - identifier)) ;) })) (expression_statement "iVar18 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar18 = *(int *)(pcVar23 + 0x722f0)" identifier = (pointer_expression "*(int *)(pcVar23 + 0x722f0)" * (cast_expression "(int *)(pcVar23 + 0x722f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x722f0)" ( (binary_expression "pcVar23 + 0x722f0" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar2 = *(int *)(pcVar23 + 0x722f0)" identifier = (pointer_expression "*(int *)(pcVar23 + 0x722f0)" * (cast_expression "(int *)(pcVar23 + 0x722f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x722f0)" ( (binary_expression "pcVar23 + 0x722f0" identifier + number_literal) ))))) ;) (for_statement "for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }" for ( ; (binary_expression "0 < iVar16" number_literal < identifier) ; (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ) (compound_statement "{\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }" { (expression_statement "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);" (assignment_expression "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13)" identifier = (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "delpos234(*(undefined4 *)(iVar20 + 8),iVar13)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),iVar13)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "(*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));" (call_expression "(*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (parenthesized_expression "(*(code *)(iVar18 + -0x6c2c))" ( (pointer_expression "*(code *)(iVar18 + -0x6c2c)" * (cast_expression "(code *)(iVar18 + -0x6c2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + -0x6c2c)" ( (binary_expression "iVar18 + -0x6c2c" identifier + number_literal) )))) )) (argument_list "(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar20 + 300)" * (cast_expression "(undefined4 *)(iVar20 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }" if (parenthesized_expression "(0 < *(int *)(iVar20 + 300))" ( (binary_expression "0 < *(int *)(iVar20 + 300)" number_literal < (pointer_expression "*(int *)(iVar20 + 300)" * (cast_expression "(int *)(iVar20 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) ))))) )) (compound_statement "{\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));" do (compound_statement "{\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "(*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);" (call_expression "(*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54)" (parenthesized_expression "(*(code *)(iVar2 + -0x76f0))" ( (pointer_expression "*(code *)(iVar2 + -0x76f0)" * (cast_expression "(code *)(iVar2 + -0x76f0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x76f0)" ( (binary_expression "iVar2 + -0x76f0" identifier + number_literal) )))) )) (argument_list "(puVar4,iVar9,iVar20 + 0x54)" ( identifier , identifier , (binary_expression "iVar20 + 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 *)(iVar20 + 300))" ( (binary_expression "iVar9 < *(int *)(iVar20 + 300)" identifier < (pointer_expression "*(int *)(iVar20 + 300)" * (cast_expression "(int *)(iVar20 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) ))))) )) ;) })) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar11)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)(iVar20 + 0xe54);" (assignment_expression "iVar9 = *(int *)(iVar20 + 0xe54)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) ))))) ;) (if_statement "if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }" if (parenthesized_expression "((iVar11 <= iVar9) && (iVar9 <= iVar13))" ( (binary_expression "(iVar11 <= iVar9) && (iVar9 <= iVar13)" (parenthesized_expression "(iVar11 <= iVar9)" ( (binary_expression "iVar11 <= iVar9" identifier <= identifier) )) && (parenthesized_expression "(iVar9 <= iVar13)" ( (binary_expression "iVar9 <= iVar13" identifier <= identifier) ))) )) (compound_statement "{\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }" { (if_statement "if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }" if (parenthesized_expression "(iVar13 < iVar9 + 1)" ( (binary_expression "iVar13 < iVar9 + 1" identifier < (binary_expression "iVar9 + 1" identifier + number_literal)) )) (compound_statement "{\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }" { (expression_statement "*(int *)(iVar20 + 0xe54) = iVar13 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar13 + 1" (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) )))) = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe58)" * (cast_expression "(undefined4 *)(iVar20 + 0xe58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe58)" ( (binary_expression "iVar20 + 0xe58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }" else (compound_statement "{\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }" { (expression_statement "*(int *)(iVar20 + 0xe54) = iVar9 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar9 + 1" (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) )))) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar9 = *(int *)(iVar20 + 0xe5c);" (assignment_expression "iVar9 = *(int *)(iVar20 + 0xe5c)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) ))))) ;) (if_statement "if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }" if (parenthesized_expression "((iVar11 <= iVar9) && (iVar9 <= iVar13))" ( (binary_expression "(iVar11 <= iVar9) && (iVar9 <= iVar13)" (parenthesized_expression "(iVar11 <= iVar9)" ( (binary_expression "iVar11 <= iVar9" identifier <= identifier) )) && (parenthesized_expression "(iVar9 <= iVar13)" ( (binary_expression "iVar9 <= iVar13" identifier <= identifier) ))) )) (compound_statement "{\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }" { (if_statement "if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }" if (parenthesized_expression "(iVar13 < iVar9 + 1)" ( (binary_expression "iVar13 < iVar9 + 1" identifier < (binary_expression "iVar9 + 1" identifier + number_literal)) )) (compound_statement "{\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }" { (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar13 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar13 + 1" (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) )))) = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe60)" * (cast_expression "(undefined4 *)(iVar20 + 0xe60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe60)" ( (binary_expression "iVar20 + 0xe60" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }" else (compound_statement "{\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }" { (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar9 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar9 + 1" (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) )))) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }))) })) })) }) (else_clause "else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }" { (if_statement "if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }" if (parenthesized_expression "(param_4 < iVar16)" ( (binary_expression "param_4 < iVar16" identifier < identifier) )) (compound_statement "{\n      iVar16 = param_4;\n    }" { (expression_statement "iVar16 = param_4;" (assignment_expression "iVar16 = param_4" identifier = identifier) ;) })) (expression_statement "iVar2 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar2 = *(int *)(pcVar23 + 0x722f0)" identifier = (pointer_expression "*(int *)(pcVar23 + 0x722f0)" * (cast_expression "(int *)(pcVar23 + 0x722f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x722f0)" ( (binary_expression "pcVar23 + 0x722f0" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar18 = *(int *)(pcVar23 + 0x722f0)" identifier = (pointer_expression "*(int *)(pcVar23 + 0x722f0)" * (cast_expression "(int *)(pcVar23 + 0x722f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x722f0)" ( (binary_expression "pcVar23 + 0x722f0" identifier + number_literal) ))))) ;) (for_statement "for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "0 < iVar16" number_literal < identifier) ; (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ) (compound_statement "{\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }" { (expression_statement "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);" (assignment_expression "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11)" identifier = (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "delpos234(*(undefined4 *)(iVar20 + 8),iVar11)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),iVar11)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "iVar9 = iVar11;" (assignment_expression "iVar9 = iVar11" identifier = identifier) ;) (if_statement "if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" if (parenthesized_expression "(pcVar10 == (code *)0x0)" ( (binary_expression "pcVar10 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" { (expression_statement "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));" (call_expression "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (parenthesized_expression "(*(code *)(iVar2 + -0x6c2c))" ( (pointer_expression "*(code *)(iVar2 + -0x6c2c)" * (cast_expression "(code *)(iVar2 + -0x6c2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x6c2c)" ( (binary_expression "iVar2 + -0x6c2c" identifier + number_literal) )))) )) (argument_list "(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar20 + 300)" * (cast_expression "(undefined4 *)(iVar20 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;" if (parenthesized_expression "(0 < *(int *)(iVar20 + 300))" ( (binary_expression "0 < *(int *)(iVar20 + 300)" number_literal < (pointer_expression "*(int *)(iVar20 + 300)" * (cast_expression "(int *)(iVar20 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0004b730;" goto statement_identifier ;)) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (labeled_statement "LAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);" statement_identifier : (expression_statement "iVar5 = *(int *)(iVar20 + 0xe48);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe48)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe48)" * (cast_expression "(int *)(iVar20 + 0xe48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe48)" ( (binary_expression "iVar20 + 0xe48" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" else (compound_statement "{\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" { (if_statement "if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }" if (parenthesized_expression "(0 < *(int *)(iVar20 + 0x130))" ( (binary_expression "0 < *(int *)(iVar20 + 0x130)" number_literal < (pointer_expression "*(int *)(iVar20 + 0x130)" * (cast_expression "(int *)(iVar20 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x130)" ( (binary_expression "iVar20 + 0x130" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }" { (expression_statement "iVar5 = count234(*(undefined4 *)(iVar20 + 4));" (assignment_expression "iVar5 = count234(*(undefined4 *)(iVar20 + 4))" identifier = (call_expression "count234(*(undefined4 *)(iVar20 + 4))" identifier (argument_list "(*(undefined4 *)(iVar20 + 4))" ( (pointer_expression "*(undefined4 *)(iVar20 + 4)" * (cast_expression "(undefined4 *)(iVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }" if (parenthesized_expression "(*(int *)(iVar20 + 0x130) == iVar5)" ( (binary_expression "*(int *)(iVar20 + 0x130) == iVar5" (pointer_expression "*(int *)(iVar20 + 0x130)" * (cast_expression "(int *)(iVar20 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x130)" ( (binary_expression "iVar20 + 0x130" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }" { (expression_statement "uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);" (assignment_expression "uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0)" identifier = (call_expression "delpos234(*(undefined4 *)(iVar20 + 4),0)" identifier (argument_list "(*(undefined4 *)(iVar20 + 4),0)" ( (pointer_expression "*(undefined4 *)(iVar20 + 4)" * (cast_expression "(undefined4 *)(iVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "safefree(uVar3);" (call_expression "safefree(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }" else (compound_statement "{\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }" { (expression_statement "*(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;" (assignment_expression "*(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar20 + 0x14) + 1" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar15 = *(undefined4 *)(iVar20 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(iVar20 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar20 + 4)" * (cast_expression "(undefined4 *)(iVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = FUN_0004b15c(puVar4);" (assignment_expression "uVar3 = FUN_0004b15c(puVar4)" identifier = (call_expression "FUN_0004b15c(puVar4)" identifier (argument_list "(puVar4)" ( identifier )))) ;) (expression_statement "addpos234(uVar15,uVar3,iVar5);" (call_expression "addpos234(uVar15,uVar3,iVar5)" identifier (argument_list "(uVar15,uVar3,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = *(int *)(iVar20 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0x10)" identifier = (pointer_expression "*(int *)(iVar20 + 0x10)" * (cast_expression "(int *)(iVar20 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }" if (parenthesized_expression "((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0))" ( (binary_expression "(-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)" (parenthesized_expression "(-*(int *)(iVar20 + 0x130) < iVar5)" ( (binary_expression "-*(int *)(iVar20 + 0x130) < iVar5" (unary_expression "-*(int *)(iVar20 + 0x130)" - (pointer_expression "*(int *)(iVar20 + 0x130)" * (cast_expression "(int *)(iVar20 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x130)" ( (binary_expression "iVar20 + 0x130" identifier + number_literal) ))))) < identifier) )) && (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) ))) )) (compound_statement "{\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }" { (expression_statement "*(int *)(iVar20 + 0x10) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0x10) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0x10)" * (cast_expression "(int *)(iVar20 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) })) })) (expression_statement "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));" (call_expression "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (parenthesized_expression "(*(code *)(iVar2 + -0x6c2c))" ( (pointer_expression "*(code *)(iVar2 + -0x6c2c)" * (cast_expression "(code *)(iVar2 + -0x6c2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x6c2c)" ( (binary_expression "iVar2 + -0x6c2c" identifier + number_literal) )))) )) (argument_list "(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar20 + 300)" * (cast_expression "(undefined4 *)(iVar20 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }" if (parenthesized_expression "(*(int *)(iVar20 + 300) < 1)" ( (binary_expression "*(int *)(iVar20 + 300) < 1" (pointer_expression "*(int *)(iVar20 + 300)" * (cast_expression "(int *)(iVar20 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }" { (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (labeled_statement "LAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);" statement_identifier : (expression_statement "iVar9 = -*(int *)(iVar20 + 0x130);" (assignment_expression "iVar9 = -*(int *)(iVar20 + 0x130)" identifier = (unary_expression "-*(int *)(iVar20 + 0x130)" - (pointer_expression "*(int *)(iVar20 + 0x130)" * (cast_expression "(int *)(iVar20 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x130)" ( (binary_expression "iVar20 + 0x130" identifier + number_literal) )))))) ;)) (goto_statement "goto LAB_0004b5f8;" goto statement_identifier ;) })) (labeled_statement "LAB_0004b730:\n        iVar5 = 0;" statement_identifier : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;)) (do_statement "do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));" do (compound_statement "{\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        }" { (expression_statement "(*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);" (call_expression "(*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54)" (parenthesized_expression "(*(code *)(iVar18 + -0x76f0))" ( (pointer_expression "*(code *)(iVar18 + -0x76f0)" * (cast_expression "(code *)(iVar18 + -0x76f0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + -0x76f0)" ( (binary_expression "iVar18 + -0x76f0" identifier + number_literal) )))) )) (argument_list "(puVar4,iVar5,iVar20 + 0x54)" ( identifier , identifier , (binary_expression "iVar20 + 0x54" identifier + number_literal) ))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 < *(int *)(iVar20 + 300))" ( (binary_expression "iVar5 < *(int *)(iVar20 + 300)" identifier < (pointer_expression "*(int *)(iVar20 + 300)" * (cast_expression "(int *)(iVar20 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) ))))) )) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (if_statement "if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;" if (parenthesized_expression "(pcVar10 != (code *)0x0)" ( (binary_expression "pcVar10 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004b5f0;" goto statement_identifier ;)) (expression_statement "iVar5 = *(int *)(iVar20 + 0xe48);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe48)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe48)" * (cast_expression "(int *)(iVar20 + 0xe48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe48)" ( (binary_expression "iVar20 + 0xe48" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }" { (expression_statement "iVar5 = *(int *)(iVar20 + 0xe54);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe54)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) ))))) ;) (if_statement "if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }" if (parenthesized_expression "((iVar9 <= iVar5) && (iVar5 <= iVar13))" ( (binary_expression "(iVar9 <= iVar5) && (iVar5 <= iVar13)" (parenthesized_expression "(iVar9 <= iVar5)" ( (binary_expression "iVar9 <= iVar5" identifier <= identifier) )) && (parenthesized_expression "(iVar5 <= iVar13)" ( (binary_expression "iVar5 <= iVar13" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }" { (if_statement "if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }" if (parenthesized_expression "(iVar5 + -1 < iVar9)" ( (binary_expression "iVar5 + -1 < iVar9" (binary_expression "iVar5 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe54) = iVar9;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar9" (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe58)" * (cast_expression "(undefined4 *)(iVar20 + 0xe58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe58)" ( (binary_expression "iVar20 + 0xe58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe54) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) )))) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar5 = *(int *)(iVar20 + 0xe5c);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe5c)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) ))))) ;) (if_statement "if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }" if (parenthesized_expression "((iVar9 <= iVar5) && (iVar5 <= iVar13))" ( (binary_expression "(iVar9 <= iVar5) && (iVar5 <= iVar13)" (parenthesized_expression "(iVar9 <= iVar5)" ( (binary_expression "iVar9 <= iVar5" identifier <= identifier) )) && (parenthesized_expression "(iVar5 <= iVar13)" ( (binary_expression "iVar5 <= iVar13" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }" { (if_statement "if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }" if (parenthesized_expression "(iVar5 + -1 < iVar9)" ( (binary_expression "iVar5 + -1 < iVar9" (binary_expression "iVar5 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar9;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar9" (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe60)" * (cast_expression "(undefined4 *)(iVar20 + 0xe60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe60)" ( (binary_expression "iVar20 + 0xe60" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) )))) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar5 = *(int *)(iVar20 + 0xe64);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe64)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe64)" * (cast_expression "(int *)(iVar20 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe64)" ( (binary_expression "iVar20 + 0xe64" identifier + number_literal) ))))) ;) (if_statement "if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }" if (parenthesized_expression "((iVar9 <= iVar5) && (iVar5 <= iVar13))" ( (binary_expression "(iVar9 <= iVar5) && (iVar5 <= iVar13)" (parenthesized_expression "(iVar9 <= iVar5)" ( (binary_expression "iVar9 <= iVar5" identifier <= identifier) )) && (parenthesized_expression "(iVar5 <= iVar13)" ( (binary_expression "iVar5 <= iVar13" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }" { (if_statement "if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }" if (parenthesized_expression "(iVar5 + -1 < iVar9)" ( (binary_expression "iVar5 + -1 < iVar9" (binary_expression "iVar5 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe64) = iVar9;" (assignment_expression "*(int *)(iVar20 + 0xe64) = iVar9" (pointer_expression "*(int *)(iVar20 + 0xe64)" * (cast_expression "(int *)(iVar20 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe64)" ( (binary_expression "iVar20 + 0xe64" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xe68) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe68) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe68)" * (cast_expression "(undefined4 *)(iVar20 + 0xe68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe68)" ( (binary_expression "iVar20 + 0xe68" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe64) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0xe64) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0xe64)" * (cast_expression "(int *)(iVar20 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe64)" ( (binary_expression "iVar20 + 0xe64" identifier + number_literal) )))) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }))) })) })) })) }))) (return_statement "return;" return ;) })))
(translation_unit "/* WARNING: Enum "anon_enum_32": Some values do not have unique names */\n\nvoid term_print_flush(Terminal *term)\n\n{\n  tree234 *ptVar1;\n  bufchain *ch;\n  bufchain *ch_00;\n  Terminal *term_00;\n  Terminal *b;\n  Terminal *ldata;\n  bufchain *in_a1;\n  tree234 *ptVar2;\n  tree234 *ptVar3;\n  uint uVar4;\n  bufchain_granule *pbVar5;\n  tree234 *ptVar6;\n  bufchain_granule *pbVar7;\n  void **data_00;\n  tree234 *data_01;\n  cmpfn234 *unaff_s5;\n  byte *unaff_s6;\n  void **ppvVar8;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  tree234 *ptVar12;\n  code *pcVar13;\n  buf bStack_110;\n  undefined4 uStack_104;\n  Terminal *pTStack_100;\n  bufchain_granule *pbStack_fc;\n  undefined1 *puStack_f8;\n  void **ppvStack_f4;\n  tree234 *ptStack_f0;\n  code *pcStack_ec;\n  code *pcStack_d8;\n  tree234 *ptStack_d0;\n  tree234 *ptStack_cc;\n  tree234 *ptStack_c8;\n  tree234 *ptStack_c4;\n  tree234 *ptStack_c0;\n  code *pcStack_bc;\n  tree234 *ptStack_b8;\n  int iStack_b4;\n  bufchain *pbStack_b0;\n  bufchain *pbStack_ac;\n  Terminal *pTStack_a8;\n  void **ppvStack_a4;\n  tree234 *ptStack_a0;\n  cmpfn234 *pp_Stack_9c;\n  byte *pbStack_98;\n  byte bStack_6d;\n  tree234 tStack_6c;\n  int iStack_64;\n  bufchain *pbStack_60;\n  bufchain *pbStack_5c;\n  Terminal *pTStack_58;\n  void **ppvStack_54;\n  tree234 *ptStack_50;\n  void *data;\n  int len;\n  cmpfn234 local_1c;\n  \n  local_1c = *(cmpfn234 *)PTR___stack_chk_guard_000be114;\n  ch_00 = &term->printer_buf;\n  data_01 = (tree234 *)&len;\n  data_00 = &data;\n  while (term_00 = (Terminal *)ch_00, ch = (bufchain *)bufchain_size(ch_00), 5 < (int)ch) {\n    bufchain_prefix(ch_00,data_00,(int *)data_01);\n    if ((int)((int)(ch + -1) + 8) <= len) {\n      len = (int)(ch + -1) + 7;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(term->print_job,data,len);\n    in_a1 = (bufchain *)len;\n    bufchain_consume(ch_00,len);\n  }\n  if (local_1c == *(cmpfn234 *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  ptVar2 = data_01;\n  puVar10 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_64 = **(int **)(puVar10 + 0x735a4);\n  pbStack_60 = ch;\n  pbStack_5c = ch_00;\n  pTStack_58 = term;\n  ppvStack_54 = data_00;\n  ptStack_50 = data_01;\n  if ((term_00->printing != 0) || (b = term_00, term_00->only_printing != 0)) {\n    term_print_flush(term_00);\n    ch = &term_00->printer_buf;\n    unaff_s5 = &tStack_6c.cmp;\n    data_01 = &tStack_6c;\n    data_00 = (void **)0x1b;\n    unaff_s6 = &bStack_6d;\n    while (ch_00 = (bufchain *)bufchain_size(ch), 0 < (int)ch_00) {\n      bufchain_prefix(ch,&data_01->root,(int *)unaff_s5);\n      bStack_6d = *(byte *)&(tStack_6c.root)->parent;\n      ptVar2 = (tree234 *)&DAT_00000001;\n      if ((bStack_6d & 0x7f) == 0x1b) {\n        in_a1 = ch_00;\n        bufchain_consume(ch,(int)ch_00);\n        break;\n      }\n      (**(code **)(puVar10 + 0x72ac0))(term_00->print_job,unaff_s6);\n      in_a1 = (bufchain *)&DAT_00000001;\n      bufchain_consume(ch,1);\n    }\n    b = (Terminal *)term_00->print_job;\n    (**(code **)(puVar10 + 0x72ac4))();\n    term_00->print_job = (printer_job *)0x0;\n    term_00->only_printing = 0;\n    term_00->printing = 0;\n  }\n  if (iStack_64 == **(int **)(puVar10 + 0x735a4)) {\n    return;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x73244);\n  (*pcVar11)();\n  pcStack_d8 = pcVar11 + 0x7a4d4;\n  iStack_b4 = **(int **)(pcVar11 + 0x73418);\n  ppvVar8 = *(void ***)((int)(in_a1 + 1) + 8);\n  ptStack_b8 = (tree234 *)0x0;\n  pbVar5 = in_a1->tail;\n  ptStack_c4 = b->scrollback;\n  ldata = b;\n  ptStack_d0 = ptVar2;\n  pbStack_b0 = ch;\n  pbStack_ac = ch_00;\n  pTStack_a8 = term_00;\n  ppvStack_a4 = data_00;\n  ptStack_a0 = data_01;\n  pp_Stack_9c = unaff_s5;\n  pbStack_98 = unaff_s6;\n  add((buf *)b,'\0');\n  ptStack_c8 = (tree234 *)0x0;\n  ptStack_cc = (tree234 *)0x0;\n  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);\n  ptVar2 = (tree234 *)0x0;\n  pcVar11 = pcStack_d8;\n  ptVar12 = (tree234 *)0x0;\n  ptVar6 = ptStack_cc;\n  while (ptStack_cc = ptVar6, pbVar7 = (bufchain_granule *)((int)&pbVar5[-1].bufmax + 3),\n        0 < (int)pbVar5) {\n    data_01 = b->scrollback;\n    ldata = b;\n    (*(code *)ptStack_d0)(b,ppvVar8,&ptStack_b8);\n    ptVar6 = (tree234 *)((int)b->scrollback - (int)data_01);\n    data_00 = ppvVar8 + 3;\n    pbVar5 = pbVar7;\n    if (ptVar12 == ptVar6) {\n      iVar9 = b->compatibility_level;\n      ldata = (Terminal *)((int)&ptStack_cc->root + iVar9);\n      ptStack_c0 = (tree234 *)\n                   (**(code **)(pcStack_d8 + -0x72b4))\n                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6);\n      pcVar11 = pcStack_d8;\n      if (ptStack_c0 != (tree234 *)0x0) {\nLAB_0004aff8:\n        ptStack_c8 = (tree234 *)0x0;\n        pbVar5 = pbVar7;\n        goto LAB_0004affc;\n      }\n      if ((int)ptVar6 < 2) {\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptStack_c8 = (tree234 *)&DAT_00000001;\n          goto LAB_0004affc;\n        }\nLAB_0004b138:\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);\n        if (0 < (int)((int)&ptVar2[-1].cmp + 3)) {\n          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);\n          goto LAB_0004addc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004aecc:\n        (**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488);\nLAB_0004aef4:\n        ptVar2 = ptStack_cc;\n        (**(code **)(pcVar11 + -0x76e0))\n                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12);\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1));\n        b->scrollback = ptVar12;\n        if ((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80) {\n          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;\n          ptStack_c4 = ptStack_cc;\n          goto LAB_0004adfc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004af7c:\n        ptStack_b8 = ptVar12;\n        pbVar5 = pbVar7;\n        if ((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)) {\n          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);\n          (**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);\n          goto LAB_0004aff8;\n        }\nLAB_0004af8c:\n        iVar9 = b->compatibility_level;\n      }\n      else {\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);\n        if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;\nLAB_0004addc:\n        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;\n        if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;\n        b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);\nLAB_0004adfc:\n        ptVar1 = ptStack_c4;\n        ptVar2 = (tree234 *)0x3;\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptVar2 = (tree234 *)0x2;\n        }\n        if ((int)pbVar7 < 1) goto LAB_0004af8c;\n        do {\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        } while (ptVar2 != (tree234 *)0x81);\n        iVar9 = b->compatibility_level;\n        pbVar5 = pbVar7;\n      }\n      *(char *)((int)&ptStack_c4->root + iVar9) = (char)ptVar2 + '~';\n      ptStack_c4 = b->scrollback;\n      ldata = b;\n      (*pcStack_bc)(b,0);\n      ptStack_c8 = ptStack_c0;\n      data_01 = ptStack_c0;\n      ptVar2 = ptStack_c0;\n      ppvVar8 = data_00;\n      pcVar11 = pcStack_d8;\n      ptVar12 = ptStack_c0;\n      ptVar6 = ptStack_c0;\n    }\n    else {\n      ptStack_c8 = (tree234 *)0x0;\n      pcVar11 = pcStack_d8;\nLAB_0004affc:\n      ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n      ppvVar8 = data_00;\n      ptVar12 = ptVar6;\n      ptVar6 = data_01;\n      if (ptVar2 == (tree234 *)0x80) {\n        *(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;\n        ptStack_c4 = b->scrollback;\n        ldata = b;\n        (*pcStack_bc)(b,0);\n        ptStack_c8 = (tree234 *)0x0;\n        data_01 = (tree234 *)0x0;\n        ptVar2 = (tree234 *)0x0;\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)0x0;\n        ptVar6 = (tree234 *)0x0;\n      }\n    }\n  }\n  if (0 < (int)ptVar2) {\n    if ((int)ptVar2 < 0x81) {\n      *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)ptVar2 + -1;\n      goto LAB_0004b0c0;\n    }\n    ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a88);\n    (**(code **)(pcVar11 + -0x7774))\n              (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x21b,*(int *)(pcVar11 + -0x7f68) + 0x3488\n              );\n  }\n  b->scrollback = ptStack_c4;\nLAB_0004b0c0:\n  if (iStack_b4 == **(int **)(pcVar11 + -0x70bc)) {\n    return;\n  }\n  pcVar11 = *(code **)(pcVar11 + -0x741c);\n  pcVar13 = compressline;\n  (*pcVar11)();\n  uStack_104 = **(undefined4 **)(pcVar11 + 0x72fb8);\n  bStack_110.data = (uchar *)0x0;\n  bStack_110.len = 0;\n  bStack_110.size = 0;\n  ptVar2 = ldata->scrollback;\n  pTStack_100 = b;\n  pbStack_fc = pbVar5;\n  puStack_f8 = (undefined1 *)pbVar7;\n  ppvStack_f4 = data_00;\n  ptStack_f0 = data_01;\n  pcStack_ec = pcVar13;\n  if (0x7f < (int)ptVar2) {\n    do {\n      add(&bStack_110,(byte)ptVar2 | 0x80);\n      ptVar2 = (tree234 *)((int)ptVar2 >> 7);\n    } while (0x7f < (int)ptVar2);\n  }\n  add(&bStack_110,(uchar)ptVar2);\n  uVar4 = (uint)*(ushort *)&ldata->compatibility_level;\n  if (0x7f < uVar4) {\n    do {\n      add(&bStack_110,(byte)uVar4 | 0x80);\n      uVar4 = (int)uVar4 >> 7;\n    } while (0x7f < uVar4);\n  }\n  add(&bStack_110,(uchar)uVar4);\n  makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7cc4));\n  makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7df8));\n  makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x6e08));\n                    /* WARNING: Subroutine does not return */\n  saferealloc(bStack_110.data,bStack_110.len,1);\n}\n\n" comment (function_definition "void term_print_flush(Terminal *term)\n\n{\n  tree234 *ptVar1;\n  bufchain *ch;\n  bufchain *ch_00;\n  Terminal *term_00;\n  Terminal *b;\n  Terminal *ldata;\n  bufchain *in_a1;\n  tree234 *ptVar2;\n  tree234 *ptVar3;\n  uint uVar4;\n  bufchain_granule *pbVar5;\n  tree234 *ptVar6;\n  bufchain_granule *pbVar7;\n  void **data_00;\n  tree234 *data_01;\n  cmpfn234 *unaff_s5;\n  byte *unaff_s6;\n  void **ppvVar8;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  tree234 *ptVar12;\n  code *pcVar13;\n  buf bStack_110;\n  undefined4 uStack_104;\n  Terminal *pTStack_100;\n  bufchain_granule *pbStack_fc;\n  undefined1 *puStack_f8;\n  void **ppvStack_f4;\n  tree234 *ptStack_f0;\n  code *pcStack_ec;\n  code *pcStack_d8;\n  tree234 *ptStack_d0;\n  tree234 *ptStack_cc;\n  tree234 *ptStack_c8;\n  tree234 *ptStack_c4;\n  tree234 *ptStack_c0;\n  code *pcStack_bc;\n  tree234 *ptStack_b8;\n  int iStack_b4;\n  bufchain *pbStack_b0;\n  bufchain *pbStack_ac;\n  Terminal *pTStack_a8;\n  void **ppvStack_a4;\n  tree234 *ptStack_a0;\n  cmpfn234 *pp_Stack_9c;\n  byte *pbStack_98;\n  byte bStack_6d;\n  tree234 tStack_6c;\n  int iStack_64;\n  bufchain *pbStack_60;\n  bufchain *pbStack_5c;\n  Terminal *pTStack_58;\n  void **ppvStack_54;\n  tree234 *ptStack_50;\n  void *data;\n  int len;\n  cmpfn234 local_1c;\n  \n  local_1c = *(cmpfn234 *)PTR___stack_chk_guard_000be114;\n  ch_00 = &term->printer_buf;\n  data_01 = (tree234 *)&len;\n  data_00 = &data;\n  while (term_00 = (Terminal *)ch_00, ch = (bufchain *)bufchain_size(ch_00), 5 < (int)ch) {\n    bufchain_prefix(ch_00,data_00,(int *)data_01);\n    if ((int)((int)(ch + -1) + 8) <= len) {\n      len = (int)(ch + -1) + 7;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(term->print_job,data,len);\n    in_a1 = (bufchain *)len;\n    bufchain_consume(ch_00,len);\n  }\n  if (local_1c == *(cmpfn234 *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  ptVar2 = data_01;\n  puVar10 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_64 = **(int **)(puVar10 + 0x735a4);\n  pbStack_60 = ch;\n  pbStack_5c = ch_00;\n  pTStack_58 = term;\n  ppvStack_54 = data_00;\n  ptStack_50 = data_01;\n  if ((term_00->printing != 0) || (b = term_00, term_00->only_printing != 0)) {\n    term_print_flush(term_00);\n    ch = &term_00->printer_buf;\n    unaff_s5 = &tStack_6c.cmp;\n    data_01 = &tStack_6c;\n    data_00 = (void **)0x1b;\n    unaff_s6 = &bStack_6d;\n    while (ch_00 = (bufchain *)bufchain_size(ch), 0 < (int)ch_00) {\n      bufchain_prefix(ch,&data_01->root,(int *)unaff_s5);\n      bStack_6d = *(byte *)&(tStack_6c.root)->parent;\n      ptVar2 = (tree234 *)&DAT_00000001;\n      if ((bStack_6d & 0x7f) == 0x1b) {\n        in_a1 = ch_00;\n        bufchain_consume(ch,(int)ch_00);\n        break;\n      }\n      (**(code **)(puVar10 + 0x72ac0))(term_00->print_job,unaff_s6);\n      in_a1 = (bufchain *)&DAT_00000001;\n      bufchain_consume(ch,1);\n    }\n    b = (Terminal *)term_00->print_job;\n    (**(code **)(puVar10 + 0x72ac4))();\n    term_00->print_job = (printer_job *)0x0;\n    term_00->only_printing = 0;\n    term_00->printing = 0;\n  }\n  if (iStack_64 == **(int **)(puVar10 + 0x735a4)) {\n    return;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x73244);\n  (*pcVar11)();\n  pcStack_d8 = pcVar11 + 0x7a4d4;\n  iStack_b4 = **(int **)(pcVar11 + 0x73418);\n  ppvVar8 = *(void ***)((int)(in_a1 + 1) + 8);\n  ptStack_b8 = (tree234 *)0x0;\n  pbVar5 = in_a1->tail;\n  ptStack_c4 = b->scrollback;\n  ldata = b;\n  ptStack_d0 = ptVar2;\n  pbStack_b0 = ch;\n  pbStack_ac = ch_00;\n  pTStack_a8 = term_00;\n  ppvStack_a4 = data_00;\n  ptStack_a0 = data_01;\n  pp_Stack_9c = unaff_s5;\n  pbStack_98 = unaff_s6;\n  add((buf *)b,'\0');\n  ptStack_c8 = (tree234 *)0x0;\n  ptStack_cc = (tree234 *)0x0;\n  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);\n  ptVar2 = (tree234 *)0x0;\n  pcVar11 = pcStack_d8;\n  ptVar12 = (tree234 *)0x0;\n  ptVar6 = ptStack_cc;\n  while (ptStack_cc = ptVar6, pbVar7 = (bufchain_granule *)((int)&pbVar5[-1].bufmax + 3),\n        0 < (int)pbVar5) {\n    data_01 = b->scrollback;\n    ldata = b;\n    (*(code *)ptStack_d0)(b,ppvVar8,&ptStack_b8);\n    ptVar6 = (tree234 *)((int)b->scrollback - (int)data_01);\n    data_00 = ppvVar8 + 3;\n    pbVar5 = pbVar7;\n    if (ptVar12 == ptVar6) {\n      iVar9 = b->compatibility_level;\n      ldata = (Terminal *)((int)&ptStack_cc->root + iVar9);\n      ptStack_c0 = (tree234 *)\n                   (**(code **)(pcStack_d8 + -0x72b4))\n                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6);\n      pcVar11 = pcStack_d8;\n      if (ptStack_c0 != (tree234 *)0x0) {\nLAB_0004aff8:\n        ptStack_c8 = (tree234 *)0x0;\n        pbVar5 = pbVar7;\n        goto LAB_0004affc;\n      }\n      if ((int)ptVar6 < 2) {\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptStack_c8 = (tree234 *)&DAT_00000001;\n          goto LAB_0004affc;\n        }\nLAB_0004b138:\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);\n        if (0 < (int)((int)&ptVar2[-1].cmp + 3)) {\n          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);\n          goto LAB_0004addc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004aecc:\n        (**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488);\nLAB_0004aef4:\n        ptVar2 = ptStack_cc;\n        (**(code **)(pcVar11 + -0x76e0))\n                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12);\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1));\n        b->scrollback = ptVar12;\n        if ((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80) {\n          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;\n          ptStack_c4 = ptStack_cc;\n          goto LAB_0004adfc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004af7c:\n        ptStack_b8 = ptVar12;\n        pbVar5 = pbVar7;\n        if ((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)) {\n          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);\n          (**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);\n          goto LAB_0004aff8;\n        }\nLAB_0004af8c:\n        iVar9 = b->compatibility_level;\n      }\n      else {\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);\n        if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;\nLAB_0004addc:\n        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;\n        if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;\n        b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);\nLAB_0004adfc:\n        ptVar1 = ptStack_c4;\n        ptVar2 = (tree234 *)0x3;\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptVar2 = (tree234 *)0x2;\n        }\n        if ((int)pbVar7 < 1) goto LAB_0004af8c;\n        do {\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        } while (ptVar2 != (tree234 *)0x81);\n        iVar9 = b->compatibility_level;\n        pbVar5 = pbVar7;\n      }\n      *(char *)((int)&ptStack_c4->root + iVar9) = (char)ptVar2 + '~';\n      ptStack_c4 = b->scrollback;\n      ldata = b;\n      (*pcStack_bc)(b,0);\n      ptStack_c8 = ptStack_c0;\n      data_01 = ptStack_c0;\n      ptVar2 = ptStack_c0;\n      ppvVar8 = data_00;\n      pcVar11 = pcStack_d8;\n      ptVar12 = ptStack_c0;\n      ptVar6 = ptStack_c0;\n    }\n    else {\n      ptStack_c8 = (tree234 *)0x0;\n      pcVar11 = pcStack_d8;\nLAB_0004affc:\n      ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n      ppvVar8 = data_00;\n      ptVar12 = ptVar6;\n      ptVar6 = data_01;\n      if (ptVar2 == (tree234 *)0x80) {\n        *(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;\n        ptStack_c4 = b->scrollback;\n        ldata = b;\n        (*pcStack_bc)(b,0);\n        ptStack_c8 = (tree234 *)0x0;\n        data_01 = (tree234 *)0x0;\n        ptVar2 = (tree234 *)0x0;\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)0x0;\n        ptVar6 = (tree234 *)0x0;\n      }\n    }\n  }\n  if (0 < (int)ptVar2) {\n    if ((int)ptVar2 < 0x81) {\n      *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)ptVar2 + -1;\n      goto LAB_0004b0c0;\n    }\n    ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a88);\n    (**(code **)(pcVar11 + -0x7774))\n              (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x21b,*(int *)(pcVar11 + -0x7f68) + 0x3488\n              );\n  }\n  b->scrollback = ptStack_c4;\nLAB_0004b0c0:\n  if (iStack_b4 == **(int **)(pcVar11 + -0x70bc)) {\n    return;\n  }\n  pcVar11 = *(code **)(pcVar11 + -0x741c);\n  pcVar13 = compressline;\n  (*pcVar11)();\n  uStack_104 = **(undefined4 **)(pcVar11 + 0x72fb8);\n  bStack_110.data = (uchar *)0x0;\n  bStack_110.len = 0;\n  bStack_110.size = 0;\n  ptVar2 = ldata->scrollback;\n  pTStack_100 = b;\n  pbStack_fc = pbVar5;\n  puStack_f8 = (undefined1 *)pbVar7;\n  ppvStack_f4 = data_00;\n  ptStack_f0 = data_01;\n  pcStack_ec = pcVar13;\n  if (0x7f < (int)ptVar2) {\n    do {\n      add(&bStack_110,(byte)ptVar2 | 0x80);\n      ptVar2 = (tree234 *)((int)ptVar2 >> 7);\n    } while (0x7f < (int)ptVar2);\n  }\n  add(&bStack_110,(uchar)ptVar2);\n  uVar4 = (uint)*(ushort *)&ldata->compatibility_level;\n  if (0x7f < uVar4) {\n    do {\n      add(&bStack_110,(byte)uVar4 | 0x80);\n      uVar4 = (int)uVar4 >> 7;\n    } while (0x7f < uVar4);\n  }\n  add(&bStack_110,(uchar)uVar4);\n  makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7cc4));\n  makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7df8));\n  makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x6e08));\n                    /* WARNING: Subroutine does not return */\n  saferealloc(bStack_110.data,bStack_110.len,1);\n}" primitive_type (function_declarator "term_print_flush(Terminal *term)" identifier (parameter_list "(Terminal *term)" ( (parameter_declaration "Terminal *term" type_identifier (pointer_declarator "*term" * identifier)) ))) (compound_statement "{\n  tree234 *ptVar1;\n  bufchain *ch;\n  bufchain *ch_00;\n  Terminal *term_00;\n  Terminal *b;\n  Terminal *ldata;\n  bufchain *in_a1;\n  tree234 *ptVar2;\n  tree234 *ptVar3;\n  uint uVar4;\n  bufchain_granule *pbVar5;\n  tree234 *ptVar6;\n  bufchain_granule *pbVar7;\n  void **data_00;\n  tree234 *data_01;\n  cmpfn234 *unaff_s5;\n  byte *unaff_s6;\n  void **ppvVar8;\n  int iVar9;\n  undefined *puVar10;\n  code *pcVar11;\n  tree234 *ptVar12;\n  code *pcVar13;\n  buf bStack_110;\n  undefined4 uStack_104;\n  Terminal *pTStack_100;\n  bufchain_granule *pbStack_fc;\n  undefined1 *puStack_f8;\n  void **ppvStack_f4;\n  tree234 *ptStack_f0;\n  code *pcStack_ec;\n  code *pcStack_d8;\n  tree234 *ptStack_d0;\n  tree234 *ptStack_cc;\n  tree234 *ptStack_c8;\n  tree234 *ptStack_c4;\n  tree234 *ptStack_c0;\n  code *pcStack_bc;\n  tree234 *ptStack_b8;\n  int iStack_b4;\n  bufchain *pbStack_b0;\n  bufchain *pbStack_ac;\n  Terminal *pTStack_a8;\n  void **ppvStack_a4;\n  tree234 *ptStack_a0;\n  cmpfn234 *pp_Stack_9c;\n  byte *pbStack_98;\n  byte bStack_6d;\n  tree234 tStack_6c;\n  int iStack_64;\n  bufchain *pbStack_60;\n  bufchain *pbStack_5c;\n  Terminal *pTStack_58;\n  void **ppvStack_54;\n  tree234 *ptStack_50;\n  void *data;\n  int len;\n  cmpfn234 local_1c;\n  \n  local_1c = *(cmpfn234 *)PTR___stack_chk_guard_000be114;\n  ch_00 = &term->printer_buf;\n  data_01 = (tree234 *)&len;\n  data_00 = &data;\n  while (term_00 = (Terminal *)ch_00, ch = (bufchain *)bufchain_size(ch_00), 5 < (int)ch) {\n    bufchain_prefix(ch_00,data_00,(int *)data_01);\n    if ((int)((int)(ch + -1) + 8) <= len) {\n      len = (int)(ch + -1) + 7;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(term->print_job,data,len);\n    in_a1 = (bufchain *)len;\n    bufchain_consume(ch_00,len);\n  }\n  if (local_1c == *(cmpfn234 *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  ptVar2 = data_01;\n  puVar10 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_64 = **(int **)(puVar10 + 0x735a4);\n  pbStack_60 = ch;\n  pbStack_5c = ch_00;\n  pTStack_58 = term;\n  ppvStack_54 = data_00;\n  ptStack_50 = data_01;\n  if ((term_00->printing != 0) || (b = term_00, term_00->only_printing != 0)) {\n    term_print_flush(term_00);\n    ch = &term_00->printer_buf;\n    unaff_s5 = &tStack_6c.cmp;\n    data_01 = &tStack_6c;\n    data_00 = (void **)0x1b;\n    unaff_s6 = &bStack_6d;\n    while (ch_00 = (bufchain *)bufchain_size(ch), 0 < (int)ch_00) {\n      bufchain_prefix(ch,&data_01->root,(int *)unaff_s5);\n      bStack_6d = *(byte *)&(tStack_6c.root)->parent;\n      ptVar2 = (tree234 *)&DAT_00000001;\n      if ((bStack_6d & 0x7f) == 0x1b) {\n        in_a1 = ch_00;\n        bufchain_consume(ch,(int)ch_00);\n        break;\n      }\n      (**(code **)(puVar10 + 0x72ac0))(term_00->print_job,unaff_s6);\n      in_a1 = (bufchain *)&DAT_00000001;\n      bufchain_consume(ch,1);\n    }\n    b = (Terminal *)term_00->print_job;\n    (**(code **)(puVar10 + 0x72ac4))();\n    term_00->print_job = (printer_job *)0x0;\n    term_00->only_printing = 0;\n    term_00->printing = 0;\n  }\n  if (iStack_64 == **(int **)(puVar10 + 0x735a4)) {\n    return;\n  }\n  pcVar11 = *(code **)(puVar10 + 0x73244);\n  (*pcVar11)();\n  pcStack_d8 = pcVar11 + 0x7a4d4;\n  iStack_b4 = **(int **)(pcVar11 + 0x73418);\n  ppvVar8 = *(void ***)((int)(in_a1 + 1) + 8);\n  ptStack_b8 = (tree234 *)0x0;\n  pbVar5 = in_a1->tail;\n  ptStack_c4 = b->scrollback;\n  ldata = b;\n  ptStack_d0 = ptVar2;\n  pbStack_b0 = ch;\n  pbStack_ac = ch_00;\n  pTStack_a8 = term_00;\n  ppvStack_a4 = data_00;\n  ptStack_a0 = data_01;\n  pp_Stack_9c = unaff_s5;\n  pbStack_98 = unaff_s6;\n  add((buf *)b,'\0');\n  ptStack_c8 = (tree234 *)0x0;\n  ptStack_cc = (tree234 *)0x0;\n  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);\n  ptVar2 = (tree234 *)0x0;\n  pcVar11 = pcStack_d8;\n  ptVar12 = (tree234 *)0x0;\n  ptVar6 = ptStack_cc;\n  while (ptStack_cc = ptVar6, pbVar7 = (bufchain_granule *)((int)&pbVar5[-1].bufmax + 3),\n        0 < (int)pbVar5) {\n    data_01 = b->scrollback;\n    ldata = b;\n    (*(code *)ptStack_d0)(b,ppvVar8,&ptStack_b8);\n    ptVar6 = (tree234 *)((int)b->scrollback - (int)data_01);\n    data_00 = ppvVar8 + 3;\n    pbVar5 = pbVar7;\n    if (ptVar12 == ptVar6) {\n      iVar9 = b->compatibility_level;\n      ldata = (Terminal *)((int)&ptStack_cc->root + iVar9);\n      ptStack_c0 = (tree234 *)\n                   (**(code **)(pcStack_d8 + -0x72b4))\n                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6);\n      pcVar11 = pcStack_d8;\n      if (ptStack_c0 != (tree234 *)0x0) {\nLAB_0004aff8:\n        ptStack_c8 = (tree234 *)0x0;\n        pbVar5 = pbVar7;\n        goto LAB_0004affc;\n      }\n      if ((int)ptVar6 < 2) {\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptStack_c8 = (tree234 *)&DAT_00000001;\n          goto LAB_0004affc;\n        }\nLAB_0004b138:\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);\n        if (0 < (int)((int)&ptVar2[-1].cmp + 3)) {\n          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);\n          goto LAB_0004addc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004aecc:\n        (**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488);\nLAB_0004aef4:\n        ptVar2 = ptStack_cc;\n        (**(code **)(pcVar11 + -0x76e0))\n                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12);\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1));\n        b->scrollback = ptVar12;\n        if ((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80) {\n          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;\n          ptStack_c4 = ptStack_cc;\n          goto LAB_0004adfc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004af7c:\n        ptStack_b8 = ptVar12;\n        pbVar5 = pbVar7;\n        if ((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)) {\n          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);\n          (**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);\n          goto LAB_0004aff8;\n        }\nLAB_0004af8c:\n        iVar9 = b->compatibility_level;\n      }\n      else {\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);\n        if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;\nLAB_0004addc:\n        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;\n        if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;\n        b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);\nLAB_0004adfc:\n        ptVar1 = ptStack_c4;\n        ptVar2 = (tree234 *)0x3;\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptVar2 = (tree234 *)0x2;\n        }\n        if ((int)pbVar7 < 1) goto LAB_0004af8c;\n        do {\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        } while (ptVar2 != (tree234 *)0x81);\n        iVar9 = b->compatibility_level;\n        pbVar5 = pbVar7;\n      }\n      *(char *)((int)&ptStack_c4->root + iVar9) = (char)ptVar2 + '~';\n      ptStack_c4 = b->scrollback;\n      ldata = b;\n      (*pcStack_bc)(b,0);\n      ptStack_c8 = ptStack_c0;\n      data_01 = ptStack_c0;\n      ptVar2 = ptStack_c0;\n      ppvVar8 = data_00;\n      pcVar11 = pcStack_d8;\n      ptVar12 = ptStack_c0;\n      ptVar6 = ptStack_c0;\n    }\n    else {\n      ptStack_c8 = (tree234 *)0x0;\n      pcVar11 = pcStack_d8;\nLAB_0004affc:\n      ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n      ppvVar8 = data_00;\n      ptVar12 = ptVar6;\n      ptVar6 = data_01;\n      if (ptVar2 == (tree234 *)0x80) {\n        *(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;\n        ptStack_c4 = b->scrollback;\n        ldata = b;\n        (*pcStack_bc)(b,0);\n        ptStack_c8 = (tree234 *)0x0;\n        data_01 = (tree234 *)0x0;\n        ptVar2 = (tree234 *)0x0;\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)0x0;\n        ptVar6 = (tree234 *)0x0;\n      }\n    }\n  }\n  if (0 < (int)ptVar2) {\n    if ((int)ptVar2 < 0x81) {\n      *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)ptVar2 + -1;\n      goto LAB_0004b0c0;\n    }\n    ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a88);\n    (**(code **)(pcVar11 + -0x7774))\n              (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x21b,*(int *)(pcVar11 + -0x7f68) + 0x3488\n              );\n  }\n  b->scrollback = ptStack_c4;\nLAB_0004b0c0:\n  if (iStack_b4 == **(int **)(pcVar11 + -0x70bc)) {\n    return;\n  }\n  pcVar11 = *(code **)(pcVar11 + -0x741c);\n  pcVar13 = compressline;\n  (*pcVar11)();\n  uStack_104 = **(undefined4 **)(pcVar11 + 0x72fb8);\n  bStack_110.data = (uchar *)0x0;\n  bStack_110.len = 0;\n  bStack_110.size = 0;\n  ptVar2 = ldata->scrollback;\n  pTStack_100 = b;\n  pbStack_fc = pbVar5;\n  puStack_f8 = (undefined1 *)pbVar7;\n  ppvStack_f4 = data_00;\n  ptStack_f0 = data_01;\n  pcStack_ec = pcVar13;\n  if (0x7f < (int)ptVar2) {\n    do {\n      add(&bStack_110,(byte)ptVar2 | 0x80);\n      ptVar2 = (tree234 *)((int)ptVar2 >> 7);\n    } while (0x7f < (int)ptVar2);\n  }\n  add(&bStack_110,(uchar)ptVar2);\n  uVar4 = (uint)*(ushort *)&ldata->compatibility_level;\n  if (0x7f < uVar4) {\n    do {\n      add(&bStack_110,(byte)uVar4 | 0x80);\n      uVar4 = (int)uVar4 >> 7;\n    } while (0x7f < uVar4);\n  }\n  add(&bStack_110,(uchar)uVar4);\n  makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7cc4));\n  makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7df8));\n  makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x6e08));\n                    /* WARNING: Subroutine does not return */\n  saferealloc(bStack_110.data,bStack_110.len,1);\n}" { (declaration "tree234 *ptVar1;" type_identifier (pointer_declarator "*ptVar1" * identifier) ;) (declaration "bufchain *ch;" type_identifier (pointer_declarator "*ch" * identifier) ;) (declaration "bufchain *ch_00;" type_identifier (pointer_declarator "*ch_00" * identifier) ;) (declaration "Terminal *term_00;" type_identifier (pointer_declarator "*term_00" * identifier) ;) (declaration "Terminal *b;" type_identifier (pointer_declarator "*b" * identifier) ;) (declaration "Terminal *ldata;" type_identifier (pointer_declarator "*ldata" * identifier) ;) (declaration "bufchain *in_a1;" type_identifier (pointer_declarator "*in_a1" * identifier) ;) (declaration "tree234 *ptVar2;" type_identifier (pointer_declarator "*ptVar2" * identifier) ;) (declaration "tree234 *ptVar3;" type_identifier (pointer_declarator "*ptVar3" * identifier) ;) (declaration "uint uVar4;" type_identifier identifier ;) (declaration "bufchain_granule *pbVar5;" type_identifier (pointer_declarator "*pbVar5" * identifier) ;) (declaration "tree234 *ptVar6;" type_identifier (pointer_declarator "*ptVar6" * identifier) ;) (declaration "bufchain_granule *pbVar7;" type_identifier (pointer_declarator "*pbVar7" * identifier) ;) (declaration "void **data_00;" primitive_type (pointer_declarator "**data_00" * (pointer_declarator "*data_00" * identifier)) ;) (declaration "tree234 *data_01;" type_identifier (pointer_declarator "*data_01" * identifier) ;) (declaration "cmpfn234 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "byte *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "void **ppvVar8;" primitive_type (pointer_declarator "**ppvVar8" * (pointer_declarator "*ppvVar8" * identifier)) ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "undefined *puVar10;" type_identifier (pointer_declarator "*puVar10" * identifier) ;) (declaration "code *pcVar11;" type_identifier (pointer_declarator "*pcVar11" * identifier) ;) (declaration "tree234 *ptVar12;" type_identifier (pointer_declarator "*ptVar12" * identifier) ;) (declaration "code *pcVar13;" type_identifier (pointer_declarator "*pcVar13" * identifier) ;) (declaration "buf bStack_110;" type_identifier identifier ;) (declaration "undefined4 uStack_104;" type_identifier identifier ;) (declaration "Terminal *pTStack_100;" type_identifier (pointer_declarator "*pTStack_100" * identifier) ;) (declaration "bufchain_granule *pbStack_fc;" type_identifier (pointer_declarator "*pbStack_fc" * identifier) ;) (declaration "undefined1 *puStack_f8;" type_identifier (pointer_declarator "*puStack_f8" * identifier) ;) (declaration "void **ppvStack_f4;" primitive_type (pointer_declarator "**ppvStack_f4" * (pointer_declarator "*ppvStack_f4" * identifier)) ;) (declaration "tree234 *ptStack_f0;" type_identifier (pointer_declarator "*ptStack_f0" * identifier) ;) (declaration "code *pcStack_ec;" type_identifier (pointer_declarator "*pcStack_ec" * identifier) ;) (declaration "code *pcStack_d8;" type_identifier (pointer_declarator "*pcStack_d8" * identifier) ;) (declaration "tree234 *ptStack_d0;" type_identifier (pointer_declarator "*ptStack_d0" * identifier) ;) (declaration "tree234 *ptStack_cc;" type_identifier (pointer_declarator "*ptStack_cc" * identifier) ;) (declaration "tree234 *ptStack_c8;" type_identifier (pointer_declarator "*ptStack_c8" * identifier) ;) (declaration "tree234 *ptStack_c4;" type_identifier (pointer_declarator "*ptStack_c4" * identifier) ;) (declaration "tree234 *ptStack_c0;" type_identifier (pointer_declarator "*ptStack_c0" * identifier) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "tree234 *ptStack_b8;" type_identifier (pointer_declarator "*ptStack_b8" * identifier) ;) (declaration "int iStack_b4;" primitive_type identifier ;) (declaration "bufchain *pbStack_b0;" type_identifier (pointer_declarator "*pbStack_b0" * identifier) ;) (declaration "bufchain *pbStack_ac;" type_identifier (pointer_declarator "*pbStack_ac" * identifier) ;) (declaration "Terminal *pTStack_a8;" type_identifier (pointer_declarator "*pTStack_a8" * identifier) ;) (declaration "void **ppvStack_a4;" primitive_type (pointer_declarator "**ppvStack_a4" * (pointer_declarator "*ppvStack_a4" * identifier)) ;) (declaration "tree234 *ptStack_a0;" type_identifier (pointer_declarator "*ptStack_a0" * identifier) ;) (declaration "cmpfn234 *pp_Stack_9c;" type_identifier (pointer_declarator "*pp_Stack_9c" * identifier) ;) (declaration "byte *pbStack_98;" type_identifier (pointer_declarator "*pbStack_98" * identifier) ;) (declaration "byte bStack_6d;" type_identifier identifier ;) (declaration "tree234 tStack_6c;" type_identifier identifier ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "bufchain *pbStack_60;" type_identifier (pointer_declarator "*pbStack_60" * identifier) ;) (declaration "bufchain *pbStack_5c;" type_identifier (pointer_declarator "*pbStack_5c" * identifier) ;) (declaration "Terminal *pTStack_58;" type_identifier (pointer_declarator "*pTStack_58" * identifier) ;) (declaration "void **ppvStack_54;" primitive_type (pointer_declarator "**ppvStack_54" * (pointer_declarator "*ppvStack_54" * identifier)) ;) (declaration "tree234 *ptStack_50;" type_identifier (pointer_declarator "*ptStack_50" * identifier) ;) (declaration "void *data;" primitive_type (pointer_declarator "*data" * identifier) ;) (declaration "int len;" primitive_type identifier ;) (declaration "cmpfn234 local_1c;" type_identifier identifier ;) (expression_statement "local_1c = *(cmpfn234 *)PTR___stack_chk_guard_000be114;" (assignment_expression "local_1c = *(cmpfn234 *)PTR___stack_chk_guard_000be114" identifier = (pointer_expression "*(cmpfn234 *)PTR___stack_chk_guard_000be114" * (cast_expression "(cmpfn234 *)PTR___stack_chk_guard_000be114" ( (type_descriptor "cmpfn234 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "ch_00 = &term->printer_buf;" (assignment_expression "ch_00 = &term->printer_buf" identifier = (pointer_expression "&term->printer_buf" & (field_expression "term->printer_buf" identifier -> field_identifier))) ;) (expression_statement "data_01 = (tree234 *)&len;" (assignment_expression "data_01 = (tree234 *)&len" identifier = (cast_expression "(tree234 *)&len" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&len" & identifier))) ;) (expression_statement "data_00 = &data;" (assignment_expression "data_00 = &data" identifier = (pointer_expression "&data" & identifier)) ;) (while_statement "while (term_00 = (Terminal *)ch_00, ch = (bufchain *)bufchain_size(ch_00), 5 < (int)ch) {\n    bufchain_prefix(ch_00,data_00,(int *)data_01);\n    if ((int)((int)(ch + -1) + 8) <= len) {\n      len = (int)(ch + -1) + 7;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(term->print_job,data,len);\n    in_a1 = (bufchain *)len;\n    bufchain_consume(ch_00,len);\n  }" while (parenthesized_expression "(term_00 = (Terminal *)ch_00, ch = (bufchain *)bufchain_size(ch_00), 5 < (int)ch)" ( (comma_expression "term_00 = (Terminal *)ch_00, ch = (bufchain *)bufchain_size(ch_00), 5 < (int)ch" (assignment_expression "term_00 = (Terminal *)ch_00" identifier = (cast_expression "(Terminal *)ch_00" ( (type_descriptor "Terminal *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) , (comma_expression "ch = (bufchain *)bufchain_size(ch_00), 5 < (int)ch" (assignment_expression "ch = (bufchain *)bufchain_size(ch_00)" identifier = (cast_expression "(bufchain *)bufchain_size(ch_00)" ( (type_descriptor "bufchain *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bufchain_size(ch_00)" identifier (argument_list "(ch_00)" ( identifier ))))) , (binary_expression "5 < (int)ch" number_literal < (cast_expression "(int)ch" ( (type_descriptor "int" primitive_type) ) identifier)))) )) (compound_statement "{\n    bufchain_prefix(ch_00,data_00,(int *)data_01);\n    if ((int)((int)(ch + -1) + 8) <= len) {\n      len = (int)(ch + -1) + 7;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(term->print_job,data,len);\n    in_a1 = (bufchain *)len;\n    bufchain_consume(ch_00,len);\n  }" { (expression_statement "bufchain_prefix(ch_00,data_00,(int *)data_01);" (call_expression "bufchain_prefix(ch_00,data_00,(int *)data_01)" identifier (argument_list "(ch_00,data_00,(int *)data_01)" ( identifier , identifier , (cast_expression "(int *)data_01" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (if_statement "if ((int)((int)(ch + -1) + 8) <= len) {\n      len = (int)(ch + -1) + 7;\n    }" if (parenthesized_expression "((int)((int)(ch + -1) + 8) <= len)" ( (binary_expression "(int)((int)(ch + -1) + 8) <= len" (cast_expression "(int)((int)(ch + -1) + 8)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)(ch + -1) + 8)" ( (binary_expression "(int)(ch + -1) + 8" (cast_expression "(int)(ch + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ch + -1)" ( (binary_expression "ch + -1" identifier + number_literal) ))) + number_literal) ))) <= identifier) )) (compound_statement "{\n      len = (int)(ch + -1) + 7;\n    }" { (expression_statement "len = (int)(ch + -1) + 7;" (assignment_expression "len = (int)(ch + -1) + 7" identifier = (binary_expression "(int)(ch + -1) + 7" (cast_expression "(int)(ch + -1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(ch + -1)" ( (binary_expression "ch + -1" identifier + number_literal) ))) + number_literal)) ;) })) (expression_statement "(*(code *)PTR_printer_job_data_000bd630)(term->print_job,data,len);" (call_expression "(*(code *)PTR_printer_job_data_000bd630)(term->print_job,data,len)" (parenthesized_expression "(*(code *)PTR_printer_job_data_000bd630)" ( (pointer_expression "*(code *)PTR_printer_job_data_000bd630" * (cast_expression "(code *)PTR_printer_job_data_000bd630" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(term->print_job,data,len)" ( (field_expression "term->print_job" identifier -> field_identifier) , identifier , identifier ))) ;) (expression_statement "in_a1 = (bufchain *)len;" (assignment_expression "in_a1 = (bufchain *)len" identifier = (cast_expression "(bufchain *)len" ( (type_descriptor "bufchain *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "bufchain_consume(ch_00,len);" (call_expression "bufchain_consume(ch_00,len)" identifier (argument_list "(ch_00,len)" ( identifier , identifier ))) ;) })) (if_statement "if (local_1c == *(cmpfn234 *)PTR___stack_chk_guard_000be114) {\n    return;\n  }" if (parenthesized_expression "(local_1c == *(cmpfn234 *)PTR___stack_chk_guard_000be114)" ( (binary_expression "local_1c == *(cmpfn234 *)PTR___stack_chk_guard_000be114" identifier == (pointer_expression "*(cmpfn234 *)PTR___stack_chk_guard_000be114" * (cast_expression "(cmpfn234 *)PTR___stack_chk_guard_000be114" ( (type_descriptor "cmpfn234 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "ptVar2 = data_01;" (assignment_expression "ptVar2 = data_01" identifier = identifier) ;) (expression_statement "puVar10 = PTR___stack_chk_fail_000bddb4;" (assignment_expression "puVar10 = PTR___stack_chk_fail_000bddb4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000bddb4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000bddb4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000bddb4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000bddb4" * (cast_expression "(code *)PTR___stack_chk_fail_000bddb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_64 = **(int **)(puVar10 + 0x735a4);" (assignment_expression "iStack_64 = **(int **)(puVar10 + 0x735a4)" identifier = (pointer_expression "**(int **)(puVar10 + 0x735a4)" * (pointer_expression "*(int **)(puVar10 + 0x735a4)" * (cast_expression "(int **)(puVar10 + 0x735a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x735a4)" ( (binary_expression "puVar10 + 0x735a4" identifier + number_literal) )))))) ;) (expression_statement "pbStack_60 = ch;" (assignment_expression "pbStack_60 = ch" identifier = identifier) ;) (expression_statement "pbStack_5c = ch_00;" (assignment_expression "pbStack_5c = ch_00" identifier = identifier) ;) (expression_statement "pTStack_58 = term;" (assignment_expression "pTStack_58 = term" identifier = identifier) ;) (expression_statement "ppvStack_54 = data_00;" (assignment_expression "ppvStack_54 = data_00" identifier = identifier) ;) (expression_statement "ptStack_50 = data_01;" (assignment_expression "ptStack_50 = data_01" identifier = identifier) ;) (if_statement "if ((term_00->printing != 0) || (b = term_00, term_00->only_printing != 0)) {\n    term_print_flush(term_00);\n    ch = &term_00->printer_buf;\n    unaff_s5 = &tStack_6c.cmp;\n    data_01 = &tStack_6c;\n    data_00 = (void **)0x1b;\n    unaff_s6 = &bStack_6d;\n    while (ch_00 = (bufchain *)bufchain_size(ch), 0 < (int)ch_00) {\n      bufchain_prefix(ch,&data_01->root,(int *)unaff_s5);\n      bStack_6d = *(byte *)&(tStack_6c.root)->parent;\n      ptVar2 = (tree234 *)&DAT_00000001;\n      if ((bStack_6d & 0x7f) == 0x1b) {\n        in_a1 = ch_00;\n        bufchain_consume(ch,(int)ch_00);\n        break;\n      }\n      (**(code **)(puVar10 + 0x72ac0))(term_00->print_job,unaff_s6);\n      in_a1 = (bufchain *)&DAT_00000001;\n      bufchain_consume(ch,1);\n    }\n    b = (Terminal *)term_00->print_job;\n    (**(code **)(puVar10 + 0x72ac4))();\n    term_00->print_job = (printer_job *)0x0;\n    term_00->only_printing = 0;\n    term_00->printing = 0;\n  }" if (parenthesized_expression "((term_00->printing != 0) || (b = term_00, term_00->only_printing != 0))" ( (binary_expression "(term_00->printing != 0) || (b = term_00, term_00->only_printing != 0)" (parenthesized_expression "(term_00->printing != 0)" ( (binary_expression "term_00->printing != 0" (field_expression "term_00->printing" identifier -> field_identifier) != number_literal) )) || (parenthesized_expression "(b = term_00, term_00->only_printing != 0)" ( (comma_expression "b = term_00, term_00->only_printing != 0" (assignment_expression "b = term_00" identifier = identifier) , (binary_expression "term_00->only_printing != 0" (field_expression "term_00->only_printing" identifier -> field_identifier) != number_literal)) ))) )) (compound_statement "{\n    term_print_flush(term_00);\n    ch = &term_00->printer_buf;\n    unaff_s5 = &tStack_6c.cmp;\n    data_01 = &tStack_6c;\n    data_00 = (void **)0x1b;\n    unaff_s6 = &bStack_6d;\n    while (ch_00 = (bufchain *)bufchain_size(ch), 0 < (int)ch_00) {\n      bufchain_prefix(ch,&data_01->root,(int *)unaff_s5);\n      bStack_6d = *(byte *)&(tStack_6c.root)->parent;\n      ptVar2 = (tree234 *)&DAT_00000001;\n      if ((bStack_6d & 0x7f) == 0x1b) {\n        in_a1 = ch_00;\n        bufchain_consume(ch,(int)ch_00);\n        break;\n      }\n      (**(code **)(puVar10 + 0x72ac0))(term_00->print_job,unaff_s6);\n      in_a1 = (bufchain *)&DAT_00000001;\n      bufchain_consume(ch,1);\n    }\n    b = (Terminal *)term_00->print_job;\n    (**(code **)(puVar10 + 0x72ac4))();\n    term_00->print_job = (printer_job *)0x0;\n    term_00->only_printing = 0;\n    term_00->printing = 0;\n  }" { (expression_statement "term_print_flush(term_00);" (call_expression "term_print_flush(term_00)" identifier (argument_list "(term_00)" ( identifier ))) ;) (expression_statement "ch = &term_00->printer_buf;" (assignment_expression "ch = &term_00->printer_buf" identifier = (pointer_expression "&term_00->printer_buf" & (field_expression "term_00->printer_buf" identifier -> field_identifier))) ;) (expression_statement "unaff_s5 = &tStack_6c.cmp;" (assignment_expression "unaff_s5 = &tStack_6c.cmp" identifier = (pointer_expression "&tStack_6c.cmp" & (field_expression "tStack_6c.cmp" identifier . field_identifier))) ;) (expression_statement "data_01 = &tStack_6c;" (assignment_expression "data_01 = &tStack_6c" identifier = (pointer_expression "&tStack_6c" & identifier)) ;) (expression_statement "data_00 = (void **)0x1b;" (assignment_expression "data_00 = (void **)0x1b" identifier = (cast_expression "(void **)0x1b" ( (type_descriptor "void **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "unaff_s6 = &bStack_6d;" (assignment_expression "unaff_s6 = &bStack_6d" identifier = (pointer_expression "&bStack_6d" & identifier)) ;) (while_statement "while (ch_00 = (bufchain *)bufchain_size(ch), 0 < (int)ch_00) {\n      bufchain_prefix(ch,&data_01->root,(int *)unaff_s5);\n      bStack_6d = *(byte *)&(tStack_6c.root)->parent;\n      ptVar2 = (tree234 *)&DAT_00000001;\n      if ((bStack_6d & 0x7f) == 0x1b) {\n        in_a1 = ch_00;\n        bufchain_consume(ch,(int)ch_00);\n        break;\n      }\n      (**(code **)(puVar10 + 0x72ac0))(term_00->print_job,unaff_s6);\n      in_a1 = (bufchain *)&DAT_00000001;\n      bufchain_consume(ch,1);\n    }" while (parenthesized_expression "(ch_00 = (bufchain *)bufchain_size(ch), 0 < (int)ch_00)" ( (comma_expression "ch_00 = (bufchain *)bufchain_size(ch), 0 < (int)ch_00" (assignment_expression "ch_00 = (bufchain *)bufchain_size(ch)" identifier = (cast_expression "(bufchain *)bufchain_size(ch)" ( (type_descriptor "bufchain *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bufchain_size(ch)" identifier (argument_list "(ch)" ( identifier ))))) , (binary_expression "0 < (int)ch_00" number_literal < (cast_expression "(int)ch_00" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n      bufchain_prefix(ch,&data_01->root,(int *)unaff_s5);\n      bStack_6d = *(byte *)&(tStack_6c.root)->parent;\n      ptVar2 = (tree234 *)&DAT_00000001;\n      if ((bStack_6d & 0x7f) == 0x1b) {\n        in_a1 = ch_00;\n        bufchain_consume(ch,(int)ch_00);\n        break;\n      }\n      (**(code **)(puVar10 + 0x72ac0))(term_00->print_job,unaff_s6);\n      in_a1 = (bufchain *)&DAT_00000001;\n      bufchain_consume(ch,1);\n    }" { (expression_statement "bufchain_prefix(ch,&data_01->root,(int *)unaff_s5);" (call_expression "bufchain_prefix(ch,&data_01->root,(int *)unaff_s5)" identifier (argument_list "(ch,&data_01->root,(int *)unaff_s5)" ( identifier , (pointer_expression "&data_01->root" & (field_expression "data_01->root" identifier -> field_identifier)) , (cast_expression "(int *)unaff_s5" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier) ))) ;) (expression_statement "bStack_6d = *(byte *)&(tStack_6c.root)->parent;" (assignment_expression "bStack_6d = *(byte *)&(tStack_6c.root)->parent" identifier = (pointer_expression "*(byte *)&(tStack_6c.root)->parent" * (cast_expression "(byte *)&(tStack_6c.root)->parent" ( (type_descriptor "byte *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&(tStack_6c.root)->parent" & (field_expression "(tStack_6c.root)->parent" (parenthesized_expression "(tStack_6c.root)" ( (field_expression "tStack_6c.root" identifier . field_identifier) )) -> field_identifier))))) ;) (expression_statement "ptVar2 = (tree234 *)&DAT_00000001;" (assignment_expression "ptVar2 = (tree234 *)&DAT_00000001" identifier = (cast_expression "(tree234 *)&DAT_00000001" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (if_statement "if ((bStack_6d & 0x7f) == 0x1b) {\n        in_a1 = ch_00;\n        bufchain_consume(ch,(int)ch_00);\n        break;\n      }" if (parenthesized_expression "((bStack_6d & 0x7f) == 0x1b)" ( (binary_expression "(bStack_6d & 0x7f) == 0x1b" (parenthesized_expression "(bStack_6d & 0x7f)" ( (binary_expression "bStack_6d & 0x7f" identifier & number_literal) )) == number_literal) )) (compound_statement "{\n        in_a1 = ch_00;\n        bufchain_consume(ch,(int)ch_00);\n        break;\n      }" { (expression_statement "in_a1 = ch_00;" (assignment_expression "in_a1 = ch_00" identifier = identifier) ;) (expression_statement "bufchain_consume(ch,(int)ch_00);" (call_expression "bufchain_consume(ch,(int)ch_00)" identifier (argument_list "(ch,(int)ch_00)" ( identifier , (cast_expression "(int)ch_00" ( (type_descriptor "int" primitive_type) ) identifier) ))) ;) (break_statement "break;" break ;) })) (expression_statement "(**(code **)(puVar10 + 0x72ac0))(term_00->print_job,unaff_s6);" (call_expression "(**(code **)(puVar10 + 0x72ac0))(term_00->print_job,unaff_s6)" (parenthesized_expression "(**(code **)(puVar10 + 0x72ac0))" ( (pointer_expression "**(code **)(puVar10 + 0x72ac0)" * (pointer_expression "*(code **)(puVar10 + 0x72ac0)" * (cast_expression "(code **)(puVar10 + 0x72ac0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x72ac0)" ( (binary_expression "puVar10 + 0x72ac0" identifier + number_literal) ))))) )) (argument_list "(term_00->print_job,unaff_s6)" ( (field_expression "term_00->print_job" identifier -> field_identifier) , identifier ))) ;) (expression_statement "in_a1 = (bufchain *)&DAT_00000001;" (assignment_expression "in_a1 = (bufchain *)&DAT_00000001" identifier = (cast_expression "(bufchain *)&DAT_00000001" ( (type_descriptor "bufchain *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (expression_statement "bufchain_consume(ch,1);" (call_expression "bufchain_consume(ch,1)" identifier (argument_list "(ch,1)" ( identifier , number_literal ))) ;) })) (expression_statement "b = (Terminal *)term_00->print_job;" (assignment_expression "b = (Terminal *)term_00->print_job" identifier = (cast_expression "(Terminal *)term_00->print_job" ( (type_descriptor "Terminal *" type_identifier (abstract_pointer_declarator "*" *)) ) (field_expression "term_00->print_job" identifier -> field_identifier))) ;) (expression_statement "(**(code **)(puVar10 + 0x72ac4))();" (call_expression "(**(code **)(puVar10 + 0x72ac4))()" (parenthesized_expression "(**(code **)(puVar10 + 0x72ac4))" ( (pointer_expression "**(code **)(puVar10 + 0x72ac4)" * (pointer_expression "*(code **)(puVar10 + 0x72ac4)" * (cast_expression "(code **)(puVar10 + 0x72ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x72ac4)" ( (binary_expression "puVar10 + 0x72ac4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "term_00->print_job = (printer_job *)0x0;" (assignment_expression "term_00->print_job = (printer_job *)0x0" (field_expression "term_00->print_job" identifier -> field_identifier) = (cast_expression "(printer_job *)0x0" ( (type_descriptor "printer_job *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "term_00->only_printing = 0;" (assignment_expression "term_00->only_printing = 0" (field_expression "term_00->only_printing" identifier -> field_identifier) = number_literal) ;) (expression_statement "term_00->printing = 0;" (assignment_expression "term_00->printing = 0" (field_expression "term_00->printing" identifier -> field_identifier) = number_literal) ;) })) (if_statement "if (iStack_64 == **(int **)(puVar10 + 0x735a4)) {\n    return;\n  }" if (parenthesized_expression "(iStack_64 == **(int **)(puVar10 + 0x735a4))" ( (binary_expression "iStack_64 == **(int **)(puVar10 + 0x735a4)" identifier == (pointer_expression "**(int **)(puVar10 + 0x735a4)" * (pointer_expression "*(int **)(puVar10 + 0x735a4)" * (cast_expression "(int **)(puVar10 + 0x735a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x735a4)" ( (binary_expression "puVar10 + 0x735a4" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar11 = *(code **)(puVar10 + 0x73244);" (assignment_expression "pcVar11 = *(code **)(puVar10 + 0x73244)" identifier = (pointer_expression "*(code **)(puVar10 + 0x73244)" * (cast_expression "(code **)(puVar10 + 0x73244)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar10 + 0x73244)" ( (binary_expression "puVar10 + 0x73244" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_d8 = pcVar11 + 0x7a4d4;" (assignment_expression "pcStack_d8 = pcVar11 + 0x7a4d4" identifier = (binary_expression "pcVar11 + 0x7a4d4" identifier + number_literal)) ;) (expression_statement "iStack_b4 = **(int **)(pcVar11 + 0x73418);" (assignment_expression "iStack_b4 = **(int **)(pcVar11 + 0x73418)" identifier = (pointer_expression "**(int **)(pcVar11 + 0x73418)" * (pointer_expression "*(int **)(pcVar11 + 0x73418)" * (cast_expression "(int **)(pcVar11 + 0x73418)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x73418)" ( (binary_expression "pcVar11 + 0x73418" identifier + number_literal) )))))) ;) (expression_statement "ppvVar8 = *(void ***)((int)(in_a1 + 1) + 8);" (assignment_expression "ppvVar8 = *(void ***)((int)(in_a1 + 1) + 8)" identifier = (pointer_expression "*(void ***)((int)(in_a1 + 1) + 8)" * (cast_expression "(void ***)((int)(in_a1 + 1) + 8)" ( (type_descriptor "void ***" primitive_type (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "((int)(in_a1 + 1) + 8)" ( (binary_expression "(int)(in_a1 + 1) + 8" (cast_expression "(int)(in_a1 + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(in_a1 + 1)" ( (binary_expression "in_a1 + 1" identifier + number_literal) ))) + number_literal) ))))) ;) (expression_statement "ptStack_b8 = (tree234 *)0x0;" (assignment_expression "ptStack_b8 = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pbVar5 = in_a1->tail;" (assignment_expression "pbVar5 = in_a1->tail" identifier = (field_expression "in_a1->tail" identifier -> field_identifier)) ;) (expression_statement "ptStack_c4 = b->scrollback;" (assignment_expression "ptStack_c4 = b->scrollback" identifier = (field_expression "b->scrollback" identifier -> field_identifier)) ;) (expression_statement "ldata = b;" (assignment_expression "ldata = b" identifier = identifier) ;) (expression_statement "ptStack_d0 = ptVar2;" (assignment_expression "ptStack_d0 = ptVar2" identifier = identifier) ;) (expression_statement "pbStack_b0 = ch;" (assignment_expression "pbStack_b0 = ch" identifier = identifier) ;) (expression_statement "pbStack_ac = ch_00;" (assignment_expression "pbStack_ac = ch_00" identifier = identifier) ;) (expression_statement "pTStack_a8 = term_00;" (assignment_expression "pTStack_a8 = term_00" identifier = identifier) ;) (expression_statement "ppvStack_a4 = data_00;" (assignment_expression "ppvStack_a4 = data_00" identifier = identifier) ;) (expression_statement "ptStack_a0 = data_01;" (assignment_expression "ptStack_a0 = data_01" identifier = identifier) ;) (expression_statement "pp_Stack_9c = unaff_s5;" (assignment_expression "pp_Stack_9c = unaff_s5" identifier = identifier) ;) (expression_statement "pbStack_98 = unaff_s6;" (assignment_expression "pbStack_98 = unaff_s6" identifier = identifier) ;) (expression_statement "add((buf *)b,'\0');" (call_expression "add((buf *)b,'\0')" identifier (argument_list "((buf *)b,'\0')" ( (cast_expression "(buf *)b" ( (type_descriptor "buf *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (char_literal "'\0'" ' escape_sequence ') ))) ;) (expression_statement "ptStack_c8 = (tree234 *)0x0;" (assignment_expression "ptStack_c8 = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ptStack_cc = (tree234 *)0x0;" (assignment_expression "ptStack_cc = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);" (assignment_expression "pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" identifier = (cast_expression "(code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98" (pointer_expression "*(int *)(pcStack_d8 + -0x7bb0)" * (cast_expression "(int *)(pcStack_d8 + -0x7bb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7bb0)" ( (binary_expression "pcStack_d8 + -0x7bb0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ptVar2 = (tree234 *)0x0;" (assignment_expression "ptVar2 = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = pcStack_d8;" (assignment_expression "pcVar11 = pcStack_d8" identifier = identifier) ;) (expression_statement "ptVar12 = (tree234 *)0x0;" (assignment_expression "ptVar12 = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ptVar6 = ptStack_cc;" (assignment_expression "ptVar6 = ptStack_cc" identifier = identifier) ;) (while_statement "while (ptStack_cc = ptVar6, pbVar7 = (bufchain_granule *)((int)&pbVar5[-1].bufmax + 3),\n        0 < (int)pbVar5) {\n    data_01 = b->scrollback;\n    ldata = b;\n    (*(code *)ptStack_d0)(b,ppvVar8,&ptStack_b8);\n    ptVar6 = (tree234 *)((int)b->scrollback - (int)data_01);\n    data_00 = ppvVar8 + 3;\n    pbVar5 = pbVar7;\n    if (ptVar12 == ptVar6) {\n      iVar9 = b->compatibility_level;\n      ldata = (Terminal *)((int)&ptStack_cc->root + iVar9);\n      ptStack_c0 = (tree234 *)\n                   (**(code **)(pcStack_d8 + -0x72b4))\n                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6);\n      pcVar11 = pcStack_d8;\n      if (ptStack_c0 != (tree234 *)0x0) {\nLAB_0004aff8:\n        ptStack_c8 = (tree234 *)0x0;\n        pbVar5 = pbVar7;\n        goto LAB_0004affc;\n      }\n      if ((int)ptVar6 < 2) {\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptStack_c8 = (tree234 *)&DAT_00000001;\n          goto LAB_0004affc;\n        }\nLAB_0004b138:\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);\n        if (0 < (int)((int)&ptVar2[-1].cmp + 3)) {\n          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);\n          goto LAB_0004addc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004aecc:\n        (**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488);\nLAB_0004aef4:\n        ptVar2 = ptStack_cc;\n        (**(code **)(pcVar11 + -0x76e0))\n                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12);\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1));\n        b->scrollback = ptVar12;\n        if ((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80) {\n          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;\n          ptStack_c4 = ptStack_cc;\n          goto LAB_0004adfc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004af7c:\n        ptStack_b8 = ptVar12;\n        pbVar5 = pbVar7;\n        if ((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)) {\n          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);\n          (**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);\n          goto LAB_0004aff8;\n        }\nLAB_0004af8c:\n        iVar9 = b->compatibility_level;\n      }\n      else {\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);\n        if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;\nLAB_0004addc:\n        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;\n        if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;\n        b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);\nLAB_0004adfc:\n        ptVar1 = ptStack_c4;\n        ptVar2 = (tree234 *)0x3;\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptVar2 = (tree234 *)0x2;\n        }\n        if ((int)pbVar7 < 1) goto LAB_0004af8c;\n        do {\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        } while (ptVar2 != (tree234 *)0x81);\n        iVar9 = b->compatibility_level;\n        pbVar5 = pbVar7;\n      }\n      *(char *)((int)&ptStack_c4->root + iVar9) = (char)ptVar2 + '~';\n      ptStack_c4 = b->scrollback;\n      ldata = b;\n      (*pcStack_bc)(b,0);\n      ptStack_c8 = ptStack_c0;\n      data_01 = ptStack_c0;\n      ptVar2 = ptStack_c0;\n      ppvVar8 = data_00;\n      pcVar11 = pcStack_d8;\n      ptVar12 = ptStack_c0;\n      ptVar6 = ptStack_c0;\n    }\n    else {\n      ptStack_c8 = (tree234 *)0x0;\n      pcVar11 = pcStack_d8;\nLAB_0004affc:\n      ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n      ppvVar8 = data_00;\n      ptVar12 = ptVar6;\n      ptVar6 = data_01;\n      if (ptVar2 == (tree234 *)0x80) {\n        *(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;\n        ptStack_c4 = b->scrollback;\n        ldata = b;\n        (*pcStack_bc)(b,0);\n        ptStack_c8 = (tree234 *)0x0;\n        data_01 = (tree234 *)0x0;\n        ptVar2 = (tree234 *)0x0;\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)0x0;\n        ptVar6 = (tree234 *)0x0;\n      }\n    }\n  }" while (parenthesized_expression "(ptStack_cc = ptVar6, pbVar7 = (bufchain_granule *)((int)&pbVar5[-1].bufmax + 3),\n        0 < (int)pbVar5)" ( (comma_expression "ptStack_cc = ptVar6, pbVar7 = (bufchain_granule *)((int)&pbVar5[-1].bufmax + 3),\n        0 < (int)pbVar5" (assignment_expression "ptStack_cc = ptVar6" identifier = identifier) , (comma_expression "pbVar7 = (bufchain_granule *)((int)&pbVar5[-1].bufmax + 3),\n        0 < (int)pbVar5" (assignment_expression "pbVar7 = (bufchain_granule *)((int)&pbVar5[-1].bufmax + 3)" identifier = (cast_expression "(bufchain_granule *)((int)&pbVar5[-1].bufmax + 3)" ( (type_descriptor "bufchain_granule *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar5[-1].bufmax + 3)" ( (binary_expression "(int)&pbVar5[-1].bufmax + 3" (cast_expression "(int)&pbVar5[-1].bufmax" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar5[-1].bufmax" & (field_expression "pbVar5[-1].bufmax" (subscript_expression "pbVar5[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) , (binary_expression "0 < (int)pbVar5" number_literal < (cast_expression "(int)pbVar5" ( (type_descriptor "int" primitive_type) ) identifier)))) )) (compound_statement "{\n    data_01 = b->scrollback;\n    ldata = b;\n    (*(code *)ptStack_d0)(b,ppvVar8,&ptStack_b8);\n    ptVar6 = (tree234 *)((int)b->scrollback - (int)data_01);\n    data_00 = ppvVar8 + 3;\n    pbVar5 = pbVar7;\n    if (ptVar12 == ptVar6) {\n      iVar9 = b->compatibility_level;\n      ldata = (Terminal *)((int)&ptStack_cc->root + iVar9);\n      ptStack_c0 = (tree234 *)\n                   (**(code **)(pcStack_d8 + -0x72b4))\n                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6);\n      pcVar11 = pcStack_d8;\n      if (ptStack_c0 != (tree234 *)0x0) {\nLAB_0004aff8:\n        ptStack_c8 = (tree234 *)0x0;\n        pbVar5 = pbVar7;\n        goto LAB_0004affc;\n      }\n      if ((int)ptVar6 < 2) {\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptStack_c8 = (tree234 *)&DAT_00000001;\n          goto LAB_0004affc;\n        }\nLAB_0004b138:\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);\n        if (0 < (int)((int)&ptVar2[-1].cmp + 3)) {\n          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);\n          goto LAB_0004addc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004aecc:\n        (**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488);\nLAB_0004aef4:\n        ptVar2 = ptStack_cc;\n        (**(code **)(pcVar11 + -0x76e0))\n                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12);\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1));\n        b->scrollback = ptVar12;\n        if ((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80) {\n          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;\n          ptStack_c4 = ptStack_cc;\n          goto LAB_0004adfc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004af7c:\n        ptStack_b8 = ptVar12;\n        pbVar5 = pbVar7;\n        if ((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)) {\n          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);\n          (**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);\n          goto LAB_0004aff8;\n        }\nLAB_0004af8c:\n        iVar9 = b->compatibility_level;\n      }\n      else {\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);\n        if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;\nLAB_0004addc:\n        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;\n        if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;\n        b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);\nLAB_0004adfc:\n        ptVar1 = ptStack_c4;\n        ptVar2 = (tree234 *)0x3;\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptVar2 = (tree234 *)0x2;\n        }\n        if ((int)pbVar7 < 1) goto LAB_0004af8c;\n        do {\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        } while (ptVar2 != (tree234 *)0x81);\n        iVar9 = b->compatibility_level;\n        pbVar5 = pbVar7;\n      }\n      *(char *)((int)&ptStack_c4->root + iVar9) = (char)ptVar2 + '~';\n      ptStack_c4 = b->scrollback;\n      ldata = b;\n      (*pcStack_bc)(b,0);\n      ptStack_c8 = ptStack_c0;\n      data_01 = ptStack_c0;\n      ptVar2 = ptStack_c0;\n      ppvVar8 = data_00;\n      pcVar11 = pcStack_d8;\n      ptVar12 = ptStack_c0;\n      ptVar6 = ptStack_c0;\n    }\n    else {\n      ptStack_c8 = (tree234 *)0x0;\n      pcVar11 = pcStack_d8;\nLAB_0004affc:\n      ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n      ppvVar8 = data_00;\n      ptVar12 = ptVar6;\n      ptVar6 = data_01;\n      if (ptVar2 == (tree234 *)0x80) {\n        *(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;\n        ptStack_c4 = b->scrollback;\n        ldata = b;\n        (*pcStack_bc)(b,0);\n        ptStack_c8 = (tree234 *)0x0;\n        data_01 = (tree234 *)0x0;\n        ptVar2 = (tree234 *)0x0;\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)0x0;\n        ptVar6 = (tree234 *)0x0;\n      }\n    }\n  }" { (expression_statement "data_01 = b->scrollback;" (assignment_expression "data_01 = b->scrollback" identifier = (field_expression "b->scrollback" identifier -> field_identifier)) ;) (expression_statement "ldata = b;" (assignment_expression "ldata = b" identifier = identifier) ;) (expression_statement "(*(code *)ptStack_d0)(b,ppvVar8,&ptStack_b8);" (call_expression "(*(code *)ptStack_d0)(b,ppvVar8,&ptStack_b8)" (parenthesized_expression "(*(code *)ptStack_d0)" ( (pointer_expression "*(code *)ptStack_d0" * (cast_expression "(code *)ptStack_d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(b,ppvVar8,&ptStack_b8)" ( identifier , identifier , (pointer_expression "&ptStack_b8" & identifier) ))) ;) (expression_statement "ptVar6 = (tree234 *)((int)b->scrollback - (int)data_01);" (assignment_expression "ptVar6 = (tree234 *)((int)b->scrollback - (int)data_01)" identifier = (cast_expression "(tree234 *)((int)b->scrollback - (int)data_01)" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)b->scrollback - (int)data_01)" ( (binary_expression "(int)b->scrollback - (int)data_01" (cast_expression "(int)b->scrollback" ( (type_descriptor "int" primitive_type) ) (field_expression "b->scrollback" identifier -> field_identifier)) - (cast_expression "(int)data_01" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "data_00 = ppvVar8 + 3;" (assignment_expression "data_00 = ppvVar8 + 3" identifier = (binary_expression "ppvVar8 + 3" identifier + number_literal)) ;) (expression_statement "pbVar5 = pbVar7;" (assignment_expression "pbVar5 = pbVar7" identifier = identifier) ;) (if_statement "if (ptVar12 == ptVar6) {\n      iVar9 = b->compatibility_level;\n      ldata = (Terminal *)((int)&ptStack_cc->root + iVar9);\n      ptStack_c0 = (tree234 *)\n                   (**(code **)(pcStack_d8 + -0x72b4))\n                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6);\n      pcVar11 = pcStack_d8;\n      if (ptStack_c0 != (tree234 *)0x0) {\nLAB_0004aff8:\n        ptStack_c8 = (tree234 *)0x0;\n        pbVar5 = pbVar7;\n        goto LAB_0004affc;\n      }\n      if ((int)ptVar6 < 2) {\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptStack_c8 = (tree234 *)&DAT_00000001;\n          goto LAB_0004affc;\n        }\nLAB_0004b138:\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);\n        if (0 < (int)((int)&ptVar2[-1].cmp + 3)) {\n          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);\n          goto LAB_0004addc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004aecc:\n        (**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488);\nLAB_0004aef4:\n        ptVar2 = ptStack_cc;\n        (**(code **)(pcVar11 + -0x76e0))\n                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12);\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1));\n        b->scrollback = ptVar12;\n        if ((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80) {\n          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;\n          ptStack_c4 = ptStack_cc;\n          goto LAB_0004adfc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004af7c:\n        ptStack_b8 = ptVar12;\n        pbVar5 = pbVar7;\n        if ((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)) {\n          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);\n          (**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);\n          goto LAB_0004aff8;\n        }\nLAB_0004af8c:\n        iVar9 = b->compatibility_level;\n      }\n      else {\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);\n        if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;\nLAB_0004addc:\n        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;\n        if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;\n        b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);\nLAB_0004adfc:\n        ptVar1 = ptStack_c4;\n        ptVar2 = (tree234 *)0x3;\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptVar2 = (tree234 *)0x2;\n        }\n        if ((int)pbVar7 < 1) goto LAB_0004af8c;\n        do {\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        } while (ptVar2 != (tree234 *)0x81);\n        iVar9 = b->compatibility_level;\n        pbVar5 = pbVar7;\n      }\n      *(char *)((int)&ptStack_c4->root + iVar9) = (char)ptVar2 + '~';\n      ptStack_c4 = b->scrollback;\n      ldata = b;\n      (*pcStack_bc)(b,0);\n      ptStack_c8 = ptStack_c0;\n      data_01 = ptStack_c0;\n      ptVar2 = ptStack_c0;\n      ppvVar8 = data_00;\n      pcVar11 = pcStack_d8;\n      ptVar12 = ptStack_c0;\n      ptVar6 = ptStack_c0;\n    }\n    else {\n      ptStack_c8 = (tree234 *)0x0;\n      pcVar11 = pcStack_d8;\nLAB_0004affc:\n      ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n      ppvVar8 = data_00;\n      ptVar12 = ptVar6;\n      ptVar6 = data_01;\n      if (ptVar2 == (tree234 *)0x80) {\n        *(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;\n        ptStack_c4 = b->scrollback;\n        ldata = b;\n        (*pcStack_bc)(b,0);\n        ptStack_c8 = (tree234 *)0x0;\n        data_01 = (tree234 *)0x0;\n        ptVar2 = (tree234 *)0x0;\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)0x0;\n        ptVar6 = (tree234 *)0x0;\n      }\n    }" if (parenthesized_expression "(ptVar12 == ptVar6)" ( (binary_expression "ptVar12 == ptVar6" identifier == identifier) )) (compound_statement "{\n      iVar9 = b->compatibility_level;\n      ldata = (Terminal *)((int)&ptStack_cc->root + iVar9);\n      ptStack_c0 = (tree234 *)\n                   (**(code **)(pcStack_d8 + -0x72b4))\n                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6);\n      pcVar11 = pcStack_d8;\n      if (ptStack_c0 != (tree234 *)0x0) {\nLAB_0004aff8:\n        ptStack_c8 = (tree234 *)0x0;\n        pbVar5 = pbVar7;\n        goto LAB_0004affc;\n      }\n      if ((int)ptVar6 < 2) {\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptStack_c8 = (tree234 *)&DAT_00000001;\n          goto LAB_0004affc;\n        }\nLAB_0004b138:\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);\n        if (0 < (int)((int)&ptVar2[-1].cmp + 3)) {\n          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);\n          goto LAB_0004addc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004aecc:\n        (**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488);\nLAB_0004aef4:\n        ptVar2 = ptStack_cc;\n        (**(code **)(pcVar11 + -0x76e0))\n                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12);\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1));\n        b->scrollback = ptVar12;\n        if ((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80) {\n          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;\n          ptStack_c4 = ptStack_cc;\n          goto LAB_0004adfc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004af7c:\n        ptStack_b8 = ptVar12;\n        pbVar5 = pbVar7;\n        if ((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)) {\n          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);\n          (**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);\n          goto LAB_0004aff8;\n        }\nLAB_0004af8c:\n        iVar9 = b->compatibility_level;\n      }\n      else {\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);\n        if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;\nLAB_0004addc:\n        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;\n        if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;\n        b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);\nLAB_0004adfc:\n        ptVar1 = ptStack_c4;\n        ptVar2 = (tree234 *)0x3;\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptVar2 = (tree234 *)0x2;\n        }\n        if ((int)pbVar7 < 1) goto LAB_0004af8c;\n        do {\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        } while (ptVar2 != (tree234 *)0x81);\n        iVar9 = b->compatibility_level;\n        pbVar5 = pbVar7;\n      }\n      *(char *)((int)&ptStack_c4->root + iVar9) = (char)ptVar2 + '~';\n      ptStack_c4 = b->scrollback;\n      ldata = b;\n      (*pcStack_bc)(b,0);\n      ptStack_c8 = ptStack_c0;\n      data_01 = ptStack_c0;\n      ptVar2 = ptStack_c0;\n      ppvVar8 = data_00;\n      pcVar11 = pcStack_d8;\n      ptVar12 = ptStack_c0;\n      ptVar6 = ptStack_c0;\n    }" { (expression_statement "iVar9 = b->compatibility_level;" (assignment_expression "iVar9 = b->compatibility_level" identifier = (field_expression "b->compatibility_level" identifier -> field_identifier)) ;) (expression_statement "ldata = (Terminal *)((int)&ptStack_cc->root + iVar9);" (assignment_expression "ldata = (Terminal *)((int)&ptStack_cc->root + iVar9)" identifier = (cast_expression "(Terminal *)((int)&ptStack_cc->root + iVar9)" ( (type_descriptor "Terminal *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptStack_cc->root + iVar9)" ( (binary_expression "(int)&ptStack_cc->root + iVar9" (cast_expression "(int)&ptStack_cc->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptStack_cc->root" & (field_expression "ptStack_cc->root" identifier -> field_identifier))) + identifier) )))) ;) (expression_statement "ptStack_c0 = (tree234 *)\n                   (**(code **)(pcStack_d8 + -0x72b4))\n                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6);" (assignment_expression "ptStack_c0 = (tree234 *)\n                   (**(code **)(pcStack_d8 + -0x72b4))\n                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6)" identifier = (cast_expression "(tree234 *)\n                   (**(code **)(pcStack_d8 + -0x72b4))\n                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6)" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "(**(code **)(pcStack_d8 + -0x72b4))\n                             (ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x72b4))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x72b4)" * (pointer_expression "*(code **)(pcStack_d8 + -0x72b4)" * (cast_expression "(code **)(pcStack_d8 + -0x72b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x72b4)" ( (binary_expression "pcStack_d8 + -0x72b4" identifier + number_literal) ))))) )) (argument_list "(ldata,(undefined1 *)((int)&data_01->root + iVar9),ptVar6)" ( identifier , (cast_expression "(undefined1 *)((int)&data_01->root + iVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&data_01->root + iVar9)" ( (binary_expression "(int)&data_01->root + iVar9" (cast_expression "(int)&data_01->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_01->root" & (field_expression "data_01->root" identifier -> field_identifier))) + identifier) ))) , identifier ))))) ;) (expression_statement "pcVar11 = pcStack_d8;" (assignment_expression "pcVar11 = pcStack_d8" identifier = identifier) ;) (if_statement "if (ptStack_c0 != (tree234 *)0x0) {\nLAB_0004aff8:\n        ptStack_c8 = (tree234 *)0x0;\n        pbVar5 = pbVar7;\n        goto LAB_0004affc;\n      }" if (parenthesized_expression "(ptStack_c0 != (tree234 *)0x0)" ( (binary_expression "ptStack_c0 != (tree234 *)0x0" identifier != (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\nLAB_0004aff8:\n        ptStack_c8 = (tree234 *)0x0;\n        pbVar5 = pbVar7;\n        goto LAB_0004affc;\n      }" { (labeled_statement "LAB_0004aff8:\n        ptStack_c8 = (tree234 *)0x0;" statement_identifier : (expression_statement "ptStack_c8 = (tree234 *)0x0;" (assignment_expression "ptStack_c8 = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;)) (expression_statement "pbVar5 = pbVar7;" (assignment_expression "pbVar5 = pbVar7" identifier = identifier) ;) (goto_statement "goto LAB_0004affc;" goto statement_identifier ;) })) (if_statement "if ((int)ptVar6 < 2) {\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptStack_c8 = (tree234 *)&DAT_00000001;\n          goto LAB_0004affc;\n        }\nLAB_0004b138:\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);\n        if (0 < (int)((int)&ptVar2[-1].cmp + 3)) {\n          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);\n          goto LAB_0004addc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004aecc:\n        (**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488);\nLAB_0004aef4:\n        ptVar2 = ptStack_cc;\n        (**(code **)(pcVar11 + -0x76e0))\n                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12);\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1));\n        b->scrollback = ptVar12;\n        if ((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80) {\n          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;\n          ptStack_c4 = ptStack_cc;\n          goto LAB_0004adfc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004af7c:\n        ptStack_b8 = ptVar12;\n        pbVar5 = pbVar7;\n        if ((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)) {\n          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);\n          (**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);\n          goto LAB_0004aff8;\n        }\nLAB_0004af8c:\n        iVar9 = b->compatibility_level;\n      }\n      else {\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);\n        if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;\nLAB_0004addc:\n        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;\n        if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;\n        b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);\nLAB_0004adfc:\n        ptVar1 = ptStack_c4;\n        ptVar2 = (tree234 *)0x3;\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptVar2 = (tree234 *)0x2;\n        }\n        if ((int)pbVar7 < 1) goto LAB_0004af8c;\n        do {\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        } while (ptVar2 != (tree234 *)0x81);\n        iVar9 = b->compatibility_level;\n        pbVar5 = pbVar7;\n      }" if (parenthesized_expression "((int)ptVar6 < 2)" ( (binary_expression "(int)ptVar6 < 2" (cast_expression "(int)ptVar6" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptStack_c8 = (tree234 *)&DAT_00000001;\n          goto LAB_0004affc;\n        }\nLAB_0004b138:\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);\n        if (0 < (int)((int)&ptVar2[-1].cmp + 3)) {\n          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);\n          goto LAB_0004addc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004aecc:\n        (**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488);\nLAB_0004aef4:\n        ptVar2 = ptStack_cc;\n        (**(code **)(pcVar11 + -0x76e0))\n                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12);\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1));\n        b->scrollback = ptVar12;\n        if ((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80) {\n          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;\n          ptStack_c4 = ptStack_cc;\n          goto LAB_0004adfc;\n        }\n        (**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\nLAB_0004af7c:\n        ptStack_b8 = ptVar12;\n        pbVar5 = pbVar7;\n        if ((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)) {\n          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);\n          (**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);\n          goto LAB_0004aff8;\n        }\nLAB_0004af8c:\n        iVar9 = b->compatibility_level;\n      }" { (if_statement "if (ptStack_c8 == (tree234 *)0x0) {\n          ptStack_c8 = (tree234 *)&DAT_00000001;\n          goto LAB_0004affc;\n        }" if (parenthesized_expression "(ptStack_c8 == (tree234 *)0x0)" ( (binary_expression "ptStack_c8 == (tree234 *)0x0" identifier == (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ptStack_c8 = (tree234 *)&DAT_00000001;\n          goto LAB_0004affc;\n        }" { (expression_statement "ptStack_c8 = (tree234 *)&DAT_00000001;" (assignment_expression "ptStack_c8 = (tree234 *)&DAT_00000001" identifier = (cast_expression "(tree234 *)&DAT_00000001" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&DAT_00000001" & identifier))) ;) (goto_statement "goto LAB_0004affc;" goto statement_identifier ;) })) (labeled_statement "LAB_0004b138:\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);" statement_identifier : (expression_statement "data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2);" (assignment_expression "data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 2)" identifier = (cast_expression "(tree234 *)((int)&ptVar2[-1].cmp + 2)" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar2[-1].cmp + 2)" ( (binary_expression "(int)&ptVar2[-1].cmp + 2" (cast_expression "(int)&ptVar2[-1].cmp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar2[-1].cmp" & (field_expression "ptVar2[-1].cmp" (subscript_expression "ptVar2[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;)) (if_statement "if (0 < (int)((int)&ptVar2[-1].cmp + 3)) {\n          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);\n          goto LAB_0004addc;\n        }" if (parenthesized_expression "(0 < (int)((int)&ptVar2[-1].cmp + 3))" ( (binary_expression "0 < (int)((int)&ptVar2[-1].cmp + 3)" number_literal < (cast_expression "(int)((int)&ptVar2[-1].cmp + 3)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&ptVar2[-1].cmp + 3)" ( (binary_expression "(int)&ptVar2[-1].cmp + 3" (cast_expression "(int)&ptVar2[-1].cmp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar2[-1].cmp" & (field_expression "ptVar2[-1].cmp" (subscript_expression "ptVar2[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) )) (compound_statement "{\n          ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);\n          goto LAB_0004addc;\n        }" { (expression_statement "ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12);" (assignment_expression "ptStack_cc = (tree234 *)((int)ptStack_cc - (int)ptVar12)" identifier = (cast_expression "(tree234 *)((int)ptStack_cc - (int)ptVar12)" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ptStack_cc - (int)ptVar12)" ( (binary_expression "(int)ptStack_cc - (int)ptVar12" (cast_expression "(int)ptStack_cc" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ptVar12" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (goto_statement "goto LAB_0004addc;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a54" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0004aecc:\n        (**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488);" statement_identifier : (expression_statement "(**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcVar11 + -0x7774))\n                  (*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcVar11 + -0x7774))" ( (pointer_expression "**(code **)(pcVar11 + -0x7774)" * (pointer_expression "*(code **)(pcVar11 + -0x7774)" * (cast_expression "(code **)(pcVar11 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + -0x7774)" ( (binary_expression "pcVar11 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcVar11 + -0x7f68) + 0x2a60,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1cd,\n                   *(int *)(pcVar11 + -0x7f68) + 0x3488)" ( (binary_expression "*(int *)(pcVar11 + -0x7f68) + 0x2a60" (pointer_expression "*(int *)(pcVar11 + -0x7f68)" * (cast_expression "(int *)(pcVar11 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + -0x7f68)" ( (binary_expression "pcVar11 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcVar11 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcVar11 + -0x7f68)" * (cast_expression "(int *)(pcVar11 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + -0x7f68)" ( (binary_expression "pcVar11 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcVar11 + -0x7f68)" * (cast_expression "(int *)(pcVar11 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + -0x7f68)" ( (binary_expression "pcVar11 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;)) (labeled_statement "LAB_0004aef4:\n        ptVar2 = ptStack_cc;" statement_identifier : (expression_statement "ptVar2 = ptStack_cc;" (assignment_expression "ptVar2 = ptStack_cc" identifier = identifier) ;)) (expression_statement "(**(code **)(pcVar11 + -0x76e0))\n                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12);" (call_expression "(**(code **)(pcVar11 + -0x76e0))\n                  ((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12)" (parenthesized_expression "(**(code **)(pcVar11 + -0x76e0))" ( (pointer_expression "**(code **)(pcVar11 + -0x76e0)" * (pointer_expression "*(code **)(pcVar11 + -0x76e0)" * (cast_expression "(code **)(pcVar11 + -0x76e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + -0x76e0)" ( (binary_expression "pcVar11 + -0x76e0" identifier + number_literal) ))))) )) (argument_list "((undefined1 *)((int)&ptStack_cc->root + iVar9 + 1),\n                   (undefined1 *)((int)&ptStack_cc->root + iVar9),ptVar12)" ( (cast_expression "(undefined1 *)((int)&ptStack_cc->root + iVar9 + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptStack_cc->root + iVar9 + 1)" ( (binary_expression "(int)&ptStack_cc->root + iVar9 + 1" (binary_expression "(int)&ptStack_cc->root + iVar9" (cast_expression "(int)&ptStack_cc->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptStack_cc->root" & (field_expression "ptStack_cc->root" identifier -> field_identifier))) + identifier) + number_literal) ))) , (cast_expression "(undefined1 *)((int)&ptStack_cc->root + iVar9)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptStack_cc->root + iVar9)" ( (binary_expression "(int)&ptStack_cc->root + iVar9" (cast_expression "(int)&ptStack_cc->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptStack_cc->root" & (field_expression "ptStack_cc->root" identifier -> field_identifier))) + identifier) ))) , identifier ))) ;) (expression_statement "pcVar11 = pcStack_d8;" (assignment_expression "pcVar11 = pcStack_d8" identifier = identifier) ;) (expression_statement "ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1));" (assignment_expression "ptVar12 = (tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1))" identifier = (cast_expression "(tree234 *)((int)&ptVar2->root + (int)((int)&ptVar12->root + 1))" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar2->root + (int)((int)&ptVar12->root + 1))" ( (binary_expression "(int)&ptVar2->root + (int)((int)&ptVar12->root + 1)" (cast_expression "(int)&ptVar2->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar2->root" & (field_expression "ptVar2->root" identifier -> field_identifier))) + (cast_expression "(int)((int)&ptVar12->root + 1)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "((int)&ptVar12->root + 1)" ( (binary_expression "(int)&ptVar12->root + 1" (cast_expression "(int)&ptVar12->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar12->root" & (field_expression "ptVar12->root" identifier -> field_identifier))) + number_literal) )))) )))) ;) (expression_statement "b->scrollback = ptVar12;" (assignment_expression "b->scrollback = ptVar12" (field_expression "b->scrollback" identifier -> field_identifier) = identifier) ;) (if_statement "if ((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80) {\n          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;\n          ptStack_c4 = ptStack_cc;\n          goto LAB_0004adfc;\n        }" if (parenthesized_expression "((undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80)" ( (binary_expression "(undefined1 *)((int)&data_01[-1].cmp + 3U) < (undefined1 *)0x80" (cast_expression "(undefined1 *)((int)&data_01[-1].cmp + 3U)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&data_01[-1].cmp + 3U)" ( (binary_expression "(int)&data_01[-1].cmp + 3U" (cast_expression "(int)&data_01[-1].cmp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_01[-1].cmp" & (field_expression "data_01[-1].cmp" (subscript_expression "data_01[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) ))) < (cast_expression "(undefined1 *)0x80" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;\n          ptStack_c4 = ptStack_cc;\n          goto LAB_0004adfc;\n        }" { (expression_statement "*(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1;" (assignment_expression "*(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)data_01 + -1" (pointer_expression "*(char *)((int)&ptStack_c4->root + b->compatibility_level)" * (cast_expression "(char *)((int)&ptStack_c4->root + b->compatibility_level)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptStack_c4->root + b->compatibility_level)" ( (binary_expression "(int)&ptStack_c4->root + b->compatibility_level" (cast_expression "(int)&ptStack_c4->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptStack_c4->root" & (field_expression "ptStack_c4->root" identifier -> field_identifier))) + (field_expression "b->compatibility_level" identifier -> field_identifier)) )))) = (binary_expression "(char)data_01 + -1" (cast_expression "(char)data_01" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "ptStack_c4 = ptStack_cc;" (assignment_expression "ptStack_c4 = ptStack_cc" identifier = identifier) ;) (goto_statement "goto LAB_0004adfc;" goto statement_identifier ;) })) (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                  (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                   0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a78" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) (labeled_statement "LAB_0004af7c:\n        ptStack_b8 = ptVar12;" statement_identifier : (expression_statement "ptStack_b8 = ptVar12;" (assignment_expression "ptStack_b8 = ptVar12" identifier = identifier) ;)) (expression_statement "pbVar5 = pbVar7;" (assignment_expression "pbVar5 = pbVar7" identifier = identifier) ;) (if_statement "if ((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)) {\n          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);\n          (**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);\n          goto LAB_0004aff8;\n        }" if (parenthesized_expression "((undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U))" ( (binary_expression "(undefined1 *)0x7f < (undefined1 *)((int)&ptVar2[-1].cmp + 2U)" (cast_expression "(undefined1 *)0x7f" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal) < (cast_expression "(undefined1 *)((int)&ptVar2[-1].cmp + 2U)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar2[-1].cmp + 2U)" ( (binary_expression "(int)&ptVar2[-1].cmp + 2U" (cast_expression "(int)&ptVar2[-1].cmp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar2[-1].cmp" & (field_expression "ptVar2[-1].cmp" (subscript_expression "ptVar2[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) )) (compound_statement "{\n          ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);\n          (**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);\n          goto LAB_0004aff8;\n        }" { (expression_statement "ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98);" (assignment_expression "ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98)" identifier = (cast_expression "(Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a98)" ( (type_descriptor "Terminal *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + -0x7f68) + 0x2a98)" ( (binary_expression "*(int *)(pcVar11 + -0x7f68) + 0x2a98" (pointer_expression "*(int *)(pcVar11 + -0x7f68)" * (cast_expression "(int *)(pcVar11 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + -0x7f68)" ( (binary_expression "pcVar11 + -0x7f68" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcVar11 + -0x7774))\n                    (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcVar11 + -0x7774))" ( (pointer_expression "**(code **)(pcVar11 + -0x7774)" * (pointer_expression "*(code **)(pcVar11 + -0x7774)" * (cast_expression "(code **)(pcVar11 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + -0x7774)" ( (binary_expression "pcVar11 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x1ed,\n                     *(int *)(pcVar11 + -0x7f68) + 0x3488)" ( identifier , (binary_expression "*(int *)(pcVar11 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcVar11 + -0x7f68)" * (cast_expression "(int *)(pcVar11 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + -0x7f68)" ( (binary_expression "pcVar11 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcVar11 + -0x7f68)" * (cast_expression "(int *)(pcVar11 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + -0x7f68)" ( (binary_expression "pcVar11 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) (goto_statement "goto LAB_0004aff8;" goto statement_identifier ;) })) (labeled_statement "LAB_0004af8c:\n        iVar9 = b->compatibility_level;" statement_identifier : (expression_statement "iVar9 = b->compatibility_level;" (assignment_expression "iVar9 = b->compatibility_level" identifier = (field_expression "b->compatibility_level" identifier -> field_identifier)) ;)) }) (else_clause "else {\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);\n        if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;\nLAB_0004addc:\n        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;\n        if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;\n        b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);\nLAB_0004adfc:\n        ptVar1 = ptStack_c4;\n        ptVar2 = (tree234 *)0x3;\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptVar2 = (tree234 *)0x2;\n        }\n        if ((int)pbVar7 < 1) goto LAB_0004af8c;\n        do {\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        } while (ptVar2 != (tree234 *)0x81);\n        iVar9 = b->compatibility_level;\n        pbVar5 = pbVar7;\n      }" else (compound_statement "{\n        data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);\n        if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;\nLAB_0004addc:\n        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;\n        if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;\n        b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);\nLAB_0004adfc:\n        ptVar1 = ptStack_c4;\n        ptVar2 = (tree234 *)0x3;\n        if (ptStack_c8 == (tree234 *)0x0) {\n          ptVar2 = (tree234 *)0x2;\n        }\n        if ((int)pbVar7 < 1) goto LAB_0004af8c;\n        do {\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        } while (ptVar2 != (tree234 *)0x81);\n        iVar9 = b->compatibility_level;\n        pbVar5 = pbVar7;\n      }" { (expression_statement "data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3);" (assignment_expression "data_01 = (tree234 *)((int)&ptVar2[-1].cmp + 3)" identifier = (cast_expression "(tree234 *)((int)&ptVar2[-1].cmp + 3)" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar2[-1].cmp + 3)" ( (binary_expression "(int)&ptVar2[-1].cmp + 3" (cast_expression "(int)&ptVar2[-1].cmp" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar2[-1].cmp" & (field_expression "ptVar2[-1].cmp" (subscript_expression "ptVar2[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (if_statement "if (ptStack_c8 != (tree234 *)0x0) goto LAB_0004b138;" if (parenthesized_expression "(ptStack_c8 != (tree234 *)0x0)" ( (binary_expression "ptStack_c8 != (tree234 *)0x0" identifier != (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004b138;" goto statement_identifier ;)) (labeled_statement "LAB_0004addc:\n        if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;" statement_identifier : (if_statement "if (data_01 != (tree234 *)0x0) goto LAB_0004aef4;" if (parenthesized_expression "(data_01 != (tree234 *)0x0)" ( (binary_expression "data_01 != (tree234 *)0x0" identifier != (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004aef4;" goto statement_identifier ;))) (if_statement "if ((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc) goto LAB_0004aecc;" if (parenthesized_expression "((tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc)" ( (binary_expression "(tree234 *)((int)&ptStack_c4->root + 1) != ptStack_cc" (cast_expression "(tree234 *)((int)&ptStack_c4->root + 1)" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptStack_c4->root + 1)" ( (binary_expression "(int)&ptStack_c4->root + 1" (cast_expression "(int)&ptStack_c4->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptStack_c4->root" & (field_expression "ptStack_c4->root" identifier -> field_identifier))) + number_literal) ))) != identifier) )) (goto_statement "goto LAB_0004aecc;" goto statement_identifier ;)) (expression_statement "b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root);" (assignment_expression "b->scrollback = (tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root)" (field_expression "b->scrollback" identifier -> field_identifier) = (cast_expression "(tree234 *)((int)&ptStack_cc->root + (int)&ptVar12->root)" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptStack_cc->root + (int)&ptVar12->root)" ( (binary_expression "(int)&ptStack_cc->root + (int)&ptVar12->root" (cast_expression "(int)&ptStack_cc->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptStack_cc->root" & (field_expression "ptStack_cc->root" identifier -> field_identifier))) + (cast_expression "(int)&ptVar12->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar12->root" & (field_expression "ptVar12->root" identifier -> field_identifier)))) )))) ;) (labeled_statement "LAB_0004adfc:\n        ptVar1 = ptStack_c4;" statement_identifier : (expression_statement "ptVar1 = ptStack_c4;" (assignment_expression "ptVar1 = ptStack_c4" identifier = identifier) ;)) (expression_statement "ptVar2 = (tree234 *)0x3;" (assignment_expression "ptVar2 = (tree234 *)0x3" identifier = (cast_expression "(tree234 *)0x3" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (if_statement "if (ptStack_c8 == (tree234 *)0x0) {\n          ptVar2 = (tree234 *)0x2;\n        }" if (parenthesized_expression "(ptStack_c8 == (tree234 *)0x0)" ( (binary_expression "ptStack_c8 == (tree234 *)0x0" identifier == (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n          ptVar2 = (tree234 *)0x2;\n        }" { (expression_statement "ptVar2 = (tree234 *)0x2;" (assignment_expression "ptVar2 = (tree234 *)0x2" identifier = (cast_expression "(tree234 *)0x2" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) (if_statement "if ((int)pbVar7 < 1) goto LAB_0004af8c;" if (parenthesized_expression "((int)pbVar7 < 1)" ( (binary_expression "(int)pbVar7 < 1" (cast_expression "(int)pbVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (goto_statement "goto LAB_0004af8c;" goto statement_identifier ;)) (do_statement "do {\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        } while (ptVar2 != (tree234 *)0x81);" do (compound_statement "{\n          ptVar12 = ptStack_b8;\n          data_01 = b->scrollback;\n          (*(code *)ptStack_d0)(b,data_00,&ptStack_b8);\n          ptVar3 = b->scrollback;\n          b->scrollback = data_01;\n          pcVar11 = pcStack_d8;\n          if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;\n          pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);\n          data_00 = data_00 + 3;\n          ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n          ptVar12 = ptStack_b8;\n          if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;\n        }" { (expression_statement "ptVar12 = ptStack_b8;" (assignment_expression "ptVar12 = ptStack_b8" identifier = identifier) ;) (expression_statement "data_01 = b->scrollback;" (assignment_expression "data_01 = b->scrollback" identifier = (field_expression "b->scrollback" identifier -> field_identifier)) ;) (expression_statement "(*(code *)ptStack_d0)(b,data_00,&ptStack_b8);" (call_expression "(*(code *)ptStack_d0)(b,data_00,&ptStack_b8)" (parenthesized_expression "(*(code *)ptStack_d0)" ( (pointer_expression "*(code *)ptStack_d0" * (cast_expression "(code *)ptStack_d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(b,data_00,&ptStack_b8)" ( identifier , identifier , (pointer_expression "&ptStack_b8" & identifier) ))) ;) (expression_statement "ptVar3 = b->scrollback;" (assignment_expression "ptVar3 = b->scrollback" identifier = (field_expression "b->scrollback" identifier -> field_identifier)) ;) (expression_statement "b->scrollback = data_01;" (assignment_expression "b->scrollback = data_01" (field_expression "b->scrollback" identifier -> field_identifier) = identifier) ;) (expression_statement "pcVar11 = pcStack_d8;" (assignment_expression "pcVar11 = pcStack_d8" identifier = identifier) ;) (if_statement "if ((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)) goto LAB_0004af7c;" if (parenthesized_expression "((ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0))" ( (binary_expression "(ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)) ||\n             (iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)" (parenthesized_expression "(ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01))" ( (binary_expression "ptVar6 != (tree234 *)((int)ptVar3 - (int)data_01)" identifier != (cast_expression "(tree234 *)((int)ptVar3 - (int)data_01)" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ptVar3 - (int)data_01)" ( (binary_expression "(int)ptVar3 - (int)data_01" (cast_expression "(int)ptVar3" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)data_01" ( (type_descriptor "int" primitive_type) ) identifier)) )))) )) || (parenthesized_expression "(iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0)" ( (comma_expression "iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level)),\n             pcVar11 = pcStack_d8, iVar9 != 0" (assignment_expression "iVar9 = (**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level))" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x72b4))\n                                ((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level))" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x72b4))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x72b4)" * (pointer_expression "*(code **)(pcStack_d8 + -0x72b4)" * (cast_expression "(code **)(pcStack_d8 + -0x72b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x72b4)" ( (binary_expression "pcStack_d8 + -0x72b4" identifier + number_literal) ))))) )) (argument_list "((undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1),\n                                 (undefined1 *)((int)&data_01->root + b->compatibility_level))" ( (cast_expression "(undefined1 *)((int)&ptVar1->root + b->compatibility_level + 1)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar1->root + b->compatibility_level + 1)" ( (binary_expression "(int)&ptVar1->root + b->compatibility_level + 1" (binary_expression "(int)&ptVar1->root + b->compatibility_level" (cast_expression "(int)&ptVar1->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar1->root" & (field_expression "ptVar1->root" identifier -> field_identifier))) + (field_expression "b->compatibility_level" identifier -> field_identifier)) + number_literal) ))) , (cast_expression "(undefined1 *)((int)&data_01->root + b->compatibility_level)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&data_01->root + b->compatibility_level)" ( (binary_expression "(int)&data_01->root + b->compatibility_level" (cast_expression "(int)&data_01->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&data_01->root" & (field_expression "data_01->root" identifier -> field_identifier))) + (field_expression "b->compatibility_level" identifier -> field_identifier)) ))) )))) , (comma_expression "pcVar11 = pcStack_d8, iVar9 != 0" (assignment_expression "pcVar11 = pcStack_d8" identifier = identifier) , (binary_expression "iVar9 != 0" identifier != number_literal))) ))) )) (goto_statement "goto LAB_0004af7c;" goto statement_identifier ;)) (expression_statement "pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3);" (assignment_expression "pbVar7 = (bufchain_granule *)((int)&pbVar7[-1].bufmax + 3)" identifier = (cast_expression "(bufchain_granule *)((int)&pbVar7[-1].bufmax + 3)" ( (type_descriptor "bufchain_granule *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&pbVar7[-1].bufmax + 3)" ( (binary_expression "(int)&pbVar7[-1].bufmax + 3" (cast_expression "(int)&pbVar7[-1].bufmax" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&pbVar7[-1].bufmax" & (field_expression "pbVar7[-1].bufmax" (subscript_expression "pbVar7[-1]" identifier [ number_literal ]) . field_identifier))) + number_literal) )))) ;) (expression_statement "data_00 = data_00 + 3;" (assignment_expression "data_00 = data_00 + 3" identifier = (binary_expression "data_00 + 3" identifier + number_literal)) ;) (expression_statement "ptVar2 = (tree234 *)((int)&ptVar2->root + 1);" (assignment_expression "ptVar2 = (tree234 *)((int)&ptVar2->root + 1)" identifier = (cast_expression "(tree234 *)((int)&ptVar2->root + 1)" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar2->root + 1)" ( (binary_expression "(int)&ptVar2->root + 1" (cast_expression "(int)&ptVar2->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar2->root" & (field_expression "ptVar2->root" identifier -> field_identifier))) + number_literal) )))) ;) (expression_statement "ptVar12 = ptStack_b8;" (assignment_expression "ptVar12 = ptStack_b8" identifier = identifier) ;) (if_statement "if (pbVar7 == (bufchain_granule *)0x0) goto LAB_0004af7c;" if (parenthesized_expression "(pbVar7 == (bufchain_granule *)0x0)" ( (binary_expression "pbVar7 == (bufchain_granule *)0x0" identifier == (cast_expression "(bufchain_granule *)0x0" ( (type_descriptor "bufchain_granule *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004af7c;" goto statement_identifier ;)) }) while (parenthesized_expression "(ptVar2 != (tree234 *)0x81)" ( (binary_expression "ptVar2 != (tree234 *)0x81" identifier != (cast_expression "(tree234 *)0x81" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) ;) (expression_statement "iVar9 = b->compatibility_level;" (assignment_expression "iVar9 = b->compatibility_level" identifier = (field_expression "b->compatibility_level" identifier -> field_identifier)) ;) (expression_statement "pbVar5 = pbVar7;" (assignment_expression "pbVar5 = pbVar7" identifier = identifier) ;) }))) (expression_statement "*(char *)((int)&ptStack_c4->root + iVar9) = (char)ptVar2 + '~';" (assignment_expression "*(char *)((int)&ptStack_c4->root + iVar9) = (char)ptVar2 + '~'" (pointer_expression "*(char *)((int)&ptStack_c4->root + iVar9)" * (cast_expression "(char *)((int)&ptStack_c4->root + iVar9)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptStack_c4->root + iVar9)" ( (binary_expression "(int)&ptStack_c4->root + iVar9" (cast_expression "(int)&ptStack_c4->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptStack_c4->root" & (field_expression "ptStack_c4->root" identifier -> field_identifier))) + identifier) )))) = (binary_expression "(char)ptVar2 + '~'" (cast_expression "(char)ptVar2" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'~'" ' character '))) ;) (expression_statement "ptStack_c4 = b->scrollback;" (assignment_expression "ptStack_c4 = b->scrollback" identifier = (field_expression "b->scrollback" identifier -> field_identifier)) ;) (expression_statement "ldata = b;" (assignment_expression "ldata = b" identifier = identifier) ;) (expression_statement "(*pcStack_bc)(b,0);" (call_expression "(*pcStack_bc)(b,0)" (parenthesized_expression "(*pcStack_bc)" ( (pointer_expression "*pcStack_bc" * identifier) )) (argument_list "(b,0)" ( identifier , number_literal ))) ;) (expression_statement "ptStack_c8 = ptStack_c0;" (assignment_expression "ptStack_c8 = ptStack_c0" identifier = identifier) ;) (expression_statement "data_01 = ptStack_c0;" (assignment_expression "data_01 = ptStack_c0" identifier = identifier) ;) (expression_statement "ptVar2 = ptStack_c0;" (assignment_expression "ptVar2 = ptStack_c0" identifier = identifier) ;) (expression_statement "ppvVar8 = data_00;" (assignment_expression "ppvVar8 = data_00" identifier = identifier) ;) (expression_statement "pcVar11 = pcStack_d8;" (assignment_expression "pcVar11 = pcStack_d8" identifier = identifier) ;) (expression_statement "ptVar12 = ptStack_c0;" (assignment_expression "ptVar12 = ptStack_c0" identifier = identifier) ;) (expression_statement "ptVar6 = ptStack_c0;" (assignment_expression "ptVar6 = ptStack_c0" identifier = identifier) ;) }) (else_clause "else {\n      ptStack_c8 = (tree234 *)0x0;\n      pcVar11 = pcStack_d8;\nLAB_0004affc:\n      ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n      ppvVar8 = data_00;\n      ptVar12 = ptVar6;\n      ptVar6 = data_01;\n      if (ptVar2 == (tree234 *)0x80) {\n        *(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;\n        ptStack_c4 = b->scrollback;\n        ldata = b;\n        (*pcStack_bc)(b,0);\n        ptStack_c8 = (tree234 *)0x0;\n        data_01 = (tree234 *)0x0;\n        ptVar2 = (tree234 *)0x0;\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)0x0;\n        ptVar6 = (tree234 *)0x0;\n      }\n    }" else (compound_statement "{\n      ptStack_c8 = (tree234 *)0x0;\n      pcVar11 = pcStack_d8;\nLAB_0004affc:\n      ptVar2 = (tree234 *)((int)&ptVar2->root + 1);\n      ppvVar8 = data_00;\n      ptVar12 = ptVar6;\n      ptVar6 = data_01;\n      if (ptVar2 == (tree234 *)0x80) {\n        *(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;\n        ptStack_c4 = b->scrollback;\n        ldata = b;\n        (*pcStack_bc)(b,0);\n        ptStack_c8 = (tree234 *)0x0;\n        data_01 = (tree234 *)0x0;\n        ptVar2 = (tree234 *)0x0;\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)0x0;\n        ptVar6 = (tree234 *)0x0;\n      }\n    }" { (expression_statement "ptStack_c8 = (tree234 *)0x0;" (assignment_expression "ptStack_c8 = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = pcStack_d8;" (assignment_expression "pcVar11 = pcStack_d8" identifier = identifier) ;) (labeled_statement "LAB_0004affc:\n      ptVar2 = (tree234 *)((int)&ptVar2->root + 1);" statement_identifier : (expression_statement "ptVar2 = (tree234 *)((int)&ptVar2->root + 1);" (assignment_expression "ptVar2 = (tree234 *)((int)&ptVar2->root + 1)" identifier = (cast_expression "(tree234 *)((int)&ptVar2->root + 1)" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptVar2->root + 1)" ( (binary_expression "(int)&ptVar2->root + 1" (cast_expression "(int)&ptVar2->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptVar2->root" & (field_expression "ptVar2->root" identifier -> field_identifier))) + number_literal) )))) ;)) (expression_statement "ppvVar8 = data_00;" (assignment_expression "ppvVar8 = data_00" identifier = identifier) ;) (expression_statement "ptVar12 = ptVar6;" (assignment_expression "ptVar12 = ptVar6" identifier = identifier) ;) (expression_statement "ptVar6 = data_01;" (assignment_expression "ptVar6 = data_01" identifier = identifier) ;) (if_statement "if (ptVar2 == (tree234 *)0x80) {\n        *(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;\n        ptStack_c4 = b->scrollback;\n        ldata = b;\n        (*pcStack_bc)(b,0);\n        ptStack_c8 = (tree234 *)0x0;\n        data_01 = (tree234 *)0x0;\n        ptVar2 = (tree234 *)0x0;\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)0x0;\n        ptVar6 = (tree234 *)0x0;\n      }" if (parenthesized_expression "(ptVar2 == (tree234 *)0x80)" ( (binary_expression "ptVar2 == (tree234 *)0x80" identifier == (cast_expression "(tree234 *)0x80" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        *(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;\n        ptStack_c4 = b->scrollback;\n        ldata = b;\n        (*pcStack_bc)(b,0);\n        ptStack_c8 = (tree234 *)0x0;\n        data_01 = (tree234 *)0x0;\n        ptVar2 = (tree234 *)0x0;\n        pcVar11 = pcStack_d8;\n        ptVar12 = (tree234 *)0x0;\n        ptVar6 = (tree234 *)0x0;\n      }" { (expression_statement "*(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f;" (assignment_expression "*(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level) = 0x7f" (pointer_expression "*(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level)" * (cast_expression "(undefined1 *)((int)&ptStack_c4->root + b->compatibility_level)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptStack_c4->root + b->compatibility_level)" ( (binary_expression "(int)&ptStack_c4->root + b->compatibility_level" (cast_expression "(int)&ptStack_c4->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptStack_c4->root" & (field_expression "ptStack_c4->root" identifier -> field_identifier))) + (field_expression "b->compatibility_level" identifier -> field_identifier)) )))) = number_literal) ;) (expression_statement "ptStack_c4 = b->scrollback;" (assignment_expression "ptStack_c4 = b->scrollback" identifier = (field_expression "b->scrollback" identifier -> field_identifier)) ;) (expression_statement "ldata = b;" (assignment_expression "ldata = b" identifier = identifier) ;) (expression_statement "(*pcStack_bc)(b,0);" (call_expression "(*pcStack_bc)(b,0)" (parenthesized_expression "(*pcStack_bc)" ( (pointer_expression "*pcStack_bc" * identifier) )) (argument_list "(b,0)" ( identifier , number_literal ))) ;) (expression_statement "ptStack_c8 = (tree234 *)0x0;" (assignment_expression "ptStack_c8 = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "data_01 = (tree234 *)0x0;" (assignment_expression "data_01 = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ptVar2 = (tree234 *)0x0;" (assignment_expression "ptVar2 = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "pcVar11 = pcStack_d8;" (assignment_expression "pcVar11 = pcStack_d8" identifier = identifier) ;) (expression_statement "ptVar12 = (tree234 *)0x0;" (assignment_expression "ptVar12 = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "ptVar6 = (tree234 *)0x0;" (assignment_expression "ptVar6 = (tree234 *)0x0" identifier = (cast_expression "(tree234 *)0x0" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }))) })) (if_statement "if (0 < (int)ptVar2) {\n    if ((int)ptVar2 < 0x81) {\n      *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)ptVar2 + -1;\n      goto LAB_0004b0c0;\n    }\n    ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a88);\n    (**(code **)(pcVar11 + -0x7774))\n              (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x21b,*(int *)(pcVar11 + -0x7f68) + 0x3488\n              );\n  }" if (parenthesized_expression "(0 < (int)ptVar2)" ( (binary_expression "0 < (int)ptVar2" number_literal < (cast_expression "(int)ptVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    if ((int)ptVar2 < 0x81) {\n      *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)ptVar2 + -1;\n      goto LAB_0004b0c0;\n    }\n    ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a88);\n    (**(code **)(pcVar11 + -0x7774))\n              (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x21b,*(int *)(pcVar11 + -0x7f68) + 0x3488\n              );\n  }" { (if_statement "if ((int)ptVar2 < 0x81) {\n      *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)ptVar2 + -1;\n      goto LAB_0004b0c0;\n    }" if (parenthesized_expression "((int)ptVar2 < 0x81)" ( (binary_expression "(int)ptVar2 < 0x81" (cast_expression "(int)ptVar2" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n      *(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)ptVar2 + -1;\n      goto LAB_0004b0c0;\n    }" { (expression_statement "*(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)ptVar2 + -1;" (assignment_expression "*(char *)((int)&ptStack_c4->root + b->compatibility_level) = (char)ptVar2 + -1" (pointer_expression "*(char *)((int)&ptStack_c4->root + b->compatibility_level)" * (cast_expression "(char *)((int)&ptStack_c4->root + b->compatibility_level)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)&ptStack_c4->root + b->compatibility_level)" ( (binary_expression "(int)&ptStack_c4->root + b->compatibility_level" (cast_expression "(int)&ptStack_c4->root" ( (type_descriptor "int" primitive_type) ) (pointer_expression "&ptStack_c4->root" & (field_expression "ptStack_c4->root" identifier -> field_identifier))) + (field_expression "b->compatibility_level" identifier -> field_identifier)) )))) = (binary_expression "(char)ptVar2 + -1" (cast_expression "(char)ptVar2" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (goto_statement "goto LAB_0004b0c0;" goto statement_identifier ;) })) (expression_statement "ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a88);" (assignment_expression "ldata = (Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a88)" identifier = (cast_expression "(Terminal *)(*(int *)(pcVar11 + -0x7f68) + 0x2a88)" ( (type_descriptor "Terminal *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + -0x7f68) + 0x2a88)" ( (binary_expression "*(int *)(pcVar11 + -0x7f68) + 0x2a88" (pointer_expression "*(int *)(pcVar11 + -0x7f68)" * (cast_expression "(int *)(pcVar11 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + -0x7f68)" ( (binary_expression "pcVar11 + -0x7f68" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "(**(code **)(pcVar11 + -0x7774))\n              (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x21b,*(int *)(pcVar11 + -0x7f68) + 0x3488\n              );" (call_expression "(**(code **)(pcVar11 + -0x7774))\n              (ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x21b,*(int *)(pcVar11 + -0x7f68) + 0x3488\n              )" (parenthesized_expression "(**(code **)(pcVar11 + -0x7774))" ( (pointer_expression "**(code **)(pcVar11 + -0x7774)" * (pointer_expression "*(code **)(pcVar11 + -0x7774)" * (cast_expression "(code **)(pcVar11 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + -0x7774)" ( (binary_expression "pcVar11 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(ldata,*(int *)(pcVar11 + -0x7f68) + 0x28d0,0x21b,*(int *)(pcVar11 + -0x7f68) + 0x3488\n              )" ( identifier , (binary_expression "*(int *)(pcVar11 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcVar11 + -0x7f68)" * (cast_expression "(int *)(pcVar11 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + -0x7f68)" ( (binary_expression "pcVar11 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcVar11 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcVar11 + -0x7f68)" * (cast_expression "(int *)(pcVar11 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + -0x7f68)" ( (binary_expression "pcVar11 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) })) (expression_statement "b->scrollback = ptStack_c4;" (assignment_expression "b->scrollback = ptStack_c4" (field_expression "b->scrollback" identifier -> field_identifier) = identifier) ;) (labeled_statement "LAB_0004b0c0:\n  if (iStack_b4 == **(int **)(pcVar11 + -0x70bc)) {\n    return;\n  }" statement_identifier : (if_statement "if (iStack_b4 == **(int **)(pcVar11 + -0x70bc)) {\n    return;\n  }" if (parenthesized_expression "(iStack_b4 == **(int **)(pcVar11 + -0x70bc))" ( (binary_expression "iStack_b4 == **(int **)(pcVar11 + -0x70bc)" identifier == (pointer_expression "**(int **)(pcVar11 + -0x70bc)" * (pointer_expression "*(int **)(pcVar11 + -0x70bc)" * (cast_expression "(int **)(pcVar11 + -0x70bc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + -0x70bc)" ( (binary_expression "pcVar11 + -0x70bc" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) }))) (expression_statement "pcVar11 = *(code **)(pcVar11 + -0x741c);" (assignment_expression "pcVar11 = *(code **)(pcVar11 + -0x741c)" identifier = (pointer_expression "*(code **)(pcVar11 + -0x741c)" * (cast_expression "(code **)(pcVar11 + -0x741c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + -0x741c)" ( (binary_expression "pcVar11 + -0x741c" identifier + number_literal) ))))) ;) (expression_statement "pcVar13 = compressline;" (assignment_expression "pcVar13 = compressline" identifier = identifier) ;) (expression_statement "(*pcVar11)();" (call_expression "(*pcVar11)()" (parenthesized_expression "(*pcVar11)" ( (pointer_expression "*pcVar11" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "uStack_104 = **(undefined4 **)(pcVar11 + 0x72fb8);" (assignment_expression "uStack_104 = **(undefined4 **)(pcVar11 + 0x72fb8)" identifier = (pointer_expression "**(undefined4 **)(pcVar11 + 0x72fb8)" * (pointer_expression "*(undefined4 **)(pcVar11 + 0x72fb8)" * (cast_expression "(undefined4 **)(pcVar11 + 0x72fb8)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar11 + 0x72fb8)" ( (binary_expression "pcVar11 + 0x72fb8" identifier + number_literal) )))))) ;) (expression_statement "bStack_110.data = (uchar *)0x0;" (assignment_expression "bStack_110.data = (uchar *)0x0" (field_expression "bStack_110.data" identifier . field_identifier) = (cast_expression "(uchar *)0x0" ( (type_descriptor "uchar *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bStack_110.len = 0;" (assignment_expression "bStack_110.len = 0" (field_expression "bStack_110.len" identifier . field_identifier) = number_literal) ;) (expression_statement "bStack_110.size = 0;" (assignment_expression "bStack_110.size = 0" (field_expression "bStack_110.size" identifier . field_identifier) = number_literal) ;) (expression_statement "ptVar2 = ldata->scrollback;" (assignment_expression "ptVar2 = ldata->scrollback" identifier = (field_expression "ldata->scrollback" identifier -> field_identifier)) ;) (expression_statement "pTStack_100 = b;" (assignment_expression "pTStack_100 = b" identifier = identifier) ;) (expression_statement "pbStack_fc = pbVar5;" (assignment_expression "pbStack_fc = pbVar5" identifier = identifier) ;) (expression_statement "puStack_f8 = (undefined1 *)pbVar7;" (assignment_expression "puStack_f8 = (undefined1 *)pbVar7" identifier = (cast_expression "(undefined1 *)pbVar7" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) ;) (expression_statement "ppvStack_f4 = data_00;" (assignment_expression "ppvStack_f4 = data_00" identifier = identifier) ;) (expression_statement "ptStack_f0 = data_01;" (assignment_expression "ptStack_f0 = data_01" identifier = identifier) ;) (expression_statement "pcStack_ec = pcVar13;" (assignment_expression "pcStack_ec = pcVar13" identifier = identifier) ;) (if_statement "if (0x7f < (int)ptVar2) {\n    do {\n      add(&bStack_110,(byte)ptVar2 | 0x80);\n      ptVar2 = (tree234 *)((int)ptVar2 >> 7);\n    } while (0x7f < (int)ptVar2);\n  }" if (parenthesized_expression "(0x7f < (int)ptVar2)" ( (binary_expression "0x7f < (int)ptVar2" number_literal < (cast_expression "(int)ptVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    do {\n      add(&bStack_110,(byte)ptVar2 | 0x80);\n      ptVar2 = (tree234 *)((int)ptVar2 >> 7);\n    } while (0x7f < (int)ptVar2);\n  }" { (do_statement "do {\n      add(&bStack_110,(byte)ptVar2 | 0x80);\n      ptVar2 = (tree234 *)((int)ptVar2 >> 7);\n    } while (0x7f < (int)ptVar2);" do (compound_statement "{\n      add(&bStack_110,(byte)ptVar2 | 0x80);\n      ptVar2 = (tree234 *)((int)ptVar2 >> 7);\n    }" { (expression_statement "add(&bStack_110,(byte)ptVar2 | 0x80);" (call_expression "add(&bStack_110,(byte)ptVar2 | 0x80)" identifier (argument_list "(&bStack_110,(byte)ptVar2 | 0x80)" ( (pointer_expression "&bStack_110" & identifier) , (binary_expression "(byte)ptVar2 | 0x80" (cast_expression "(byte)ptVar2" ( (type_descriptor "byte" type_identifier) ) identifier) | number_literal) ))) ;) (expression_statement "ptVar2 = (tree234 *)((int)ptVar2 >> 7);" (assignment_expression "ptVar2 = (tree234 *)((int)ptVar2 >> 7)" identifier = (cast_expression "(tree234 *)((int)ptVar2 >> 7)" ( (type_descriptor "tree234 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ptVar2 >> 7)" ( (binary_expression "(int)ptVar2 >> 7" (cast_expression "(int)ptVar2" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal) )))) ;) }) while (parenthesized_expression "(0x7f < (int)ptVar2)" ( (binary_expression "0x7f < (int)ptVar2" number_literal < (cast_expression "(int)ptVar2" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "add(&bStack_110,(uchar)ptVar2);" (call_expression "add(&bStack_110,(uchar)ptVar2)" identifier (argument_list "(&bStack_110,(uchar)ptVar2)" ( (pointer_expression "&bStack_110" & identifier) , (cast_expression "(uchar)ptVar2" ( (type_descriptor "uchar" type_identifier) ) identifier) ))) ;) (expression_statement "uVar4 = (uint)*(ushort *)&ldata->compatibility_level;" (assignment_expression "uVar4 = (uint)*(ushort *)&ldata->compatibility_level" identifier = (binary_expression "(uint)*(ushort *)&ldata->compatibility_level" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)&ldata->compatibility_level" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) (pointer_expression "&ldata->compatibility_level" & (field_expression "ldata->compatibility_level" identifier -> field_identifier))))) ;) (if_statement "if (0x7f < uVar4) {\n    do {\n      add(&bStack_110,(byte)uVar4 | 0x80);\n      uVar4 = (int)uVar4 >> 7;\n    } while (0x7f < uVar4);\n  }" if (parenthesized_expression "(0x7f < uVar4)" ( (binary_expression "0x7f < uVar4" number_literal < identifier) )) (compound_statement "{\n    do {\n      add(&bStack_110,(byte)uVar4 | 0x80);\n      uVar4 = (int)uVar4 >> 7;\n    } while (0x7f < uVar4);\n  }" { (do_statement "do {\n      add(&bStack_110,(byte)uVar4 | 0x80);\n      uVar4 = (int)uVar4 >> 7;\n    } while (0x7f < uVar4);" do (compound_statement "{\n      add(&bStack_110,(byte)uVar4 | 0x80);\n      uVar4 = (int)uVar4 >> 7;\n    }" { (expression_statement "add(&bStack_110,(byte)uVar4 | 0x80);" (call_expression "add(&bStack_110,(byte)uVar4 | 0x80)" identifier (argument_list "(&bStack_110,(byte)uVar4 | 0x80)" ( (pointer_expression "&bStack_110" & identifier) , (binary_expression "(byte)uVar4 | 0x80" (cast_expression "(byte)uVar4" ( (type_descriptor "byte" type_identifier) ) identifier) | number_literal) ))) ;) (expression_statement "uVar4 = (int)uVar4 >> 7;" (assignment_expression "uVar4 = (int)uVar4 >> 7" identifier = (binary_expression "(int)uVar4 >> 7" (cast_expression "(int)uVar4" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }) while (parenthesized_expression "(0x7f < uVar4)" ( (binary_expression "0x7f < uVar4" number_literal < identifier) )) ;) })) (expression_statement "add(&bStack_110,(uchar)uVar4);" (call_expression "add(&bStack_110,(uchar)uVar4)" identifier (argument_list "(&bStack_110,(uchar)uVar4)" ( (pointer_expression "&bStack_110" & identifier) , (cast_expression "(uchar)uVar4" ( (type_descriptor "uchar" type_identifier) ) identifier) ))) ;) (expression_statement "makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7cc4));" (call_expression "makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7cc4))" identifier (argument_list "(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7cc4))" ( (pointer_expression "&bStack_110" & identifier) , (cast_expression "(termline *)ldata" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7cc4)" ( (type_descriptor "_func_void_buf_ptr_termchar_ptr_ulong_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x724c4) + -0x7cc4)" ( (binary_expression "*(int *)(pcVar11 + 0x724c4) + -0x7cc4" (pointer_expression "*(int *)(pcVar11 + 0x724c4)" * (cast_expression "(int *)(pcVar11 + 0x724c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x724c4)" ( (binary_expression "pcVar11 + 0x724c4" identifier + number_literal) )))) + number_literal) ))) ))) ;) (expression_statement "makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7df8));" (call_expression "makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7df8))" identifier (argument_list "(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7df8))" ( (pointer_expression "&bStack_110" & identifier) , (cast_expression "(termline *)ldata" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x7df8)" ( (type_descriptor "_func_void_buf_ptr_termchar_ptr_ulong_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x724c4) + -0x7df8)" ( (binary_expression "*(int *)(pcVar11 + 0x724c4) + -0x7df8" (pointer_expression "*(int *)(pcVar11 + 0x724c4)" * (cast_expression "(int *)(pcVar11 + 0x724c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x724c4)" ( (binary_expression "pcVar11 + 0x724c4" identifier + number_literal) )))) + number_literal) ))) ))) ;) (expression_statement "makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x6e08));" (call_expression "makerle(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x6e08))" identifier (argument_list "(&bStack_110,(termline *)ldata,\n          (_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x6e08))" ( (pointer_expression "&bStack_110" & identifier) , (cast_expression "(termline *)ldata" ( (type_descriptor "termline *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier) , (cast_expression "(_func_void_buf_ptr_termchar_ptr_ulong_ptr *)(*(int *)(pcVar11 + 0x724c4) + -0x6e08)" ( (type_descriptor "_func_void_buf_ptr_termchar_ptr_ulong_ptr *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcVar11 + 0x724c4) + -0x6e08)" ( (binary_expression "*(int *)(pcVar11 + 0x724c4) + -0x6e08" (pointer_expression "*(int *)(pcVar11 + 0x724c4)" * (cast_expression "(int *)(pcVar11 + 0x724c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar11 + 0x724c4)" ( (binary_expression "pcVar11 + 0x724c4" identifier + number_literal) )))) + number_literal) ))) ))) ;) comment (expression_statement "saferealloc(bStack_110.data,bStack_110.len,1);" (call_expression "saferealloc(bStack_110.data,bStack_110.len,1)" identifier (argument_list "(bStack_110.data,bStack_110.len,1)" ( (field_expression "bStack_110.data" identifier . field_identifier) , (field_expression "bStack_110.len" identifier . field_identifier) , number_literal ))) ;) })))
(translation_unit "void FUN_0004aa58(int param_1,code *param_2,undefined4 param_3,int param_4)\n\n{\n  code *pcVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined2 *puVar4;\n  int iVar5;\n  code *pcVar6;\n  code **ppcVar7;\n  uint uVar8;\n  int iVar9;\n  code *pcVar10;\n  int iVar11;\n  code **ppcVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  int iVar16;\n  code **ppcVar17;\n  int iVar18;\n  undefined1 *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code **ppcVar24;\n  undefined4 uStack_110;\n  int iStack_10c;\n  undefined4 uStack_108;\n  int iStack_104;\n  code *pcStack_100;\n  int iStack_fc;\n  int iStack_f8;\n  undefined4 *puStack_f4;\n  code **ppcStack_f0;\n  code *pcStack_ec;\n  code *pcStack_d8;\n  code **ppcStack_d0;\n  code **ppcStack_cc;\n  code **ppcStack_c8;\n  code **ppcStack_c4;\n  code **ppcStack_c0;\n  code *pcStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  code *pcStack_b0;\n  code *pcStack_ac;\n  code *pcStack_a8;\n  undefined4 *puStack_a4;\n  code **ppcStack_a0;\n  undefined1 *puStack_9c;\n  undefined1 *puStack_98;\n  undefined1 uStack_6d;\n  code *pcStack_6c;\n  undefined1 auStack_68 [4];\n  int iStack_64;\n  code *pcStack_60;\n  code *pcStack_5c;\n  int iStack_58;\n  undefined4 *puStack_54;\n  code **ppcStack_50;\n  undefined4 local_24;\n  code *local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000be114;\n  pcVar10 = (code *)(param_1 + 0xf8);\n  ppcVar17 = &local_20;\n  puVar14 = &local_24;\n  while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  ppcVar7 = ppcVar17;\n  puVar21 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_64 = **(int **)(puVar21 + 0x735a4);\n  pcStack_60 = pcVar1;\n  pcStack_5c = pcVar10;\n  iStack_58 = param_1;\n  puStack_54 = puVar14;\n  ppcStack_50 = ppcVar17;\n  if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }\n  if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {\n    return;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x73244);\n  (*pcVar22)();\n  pcStack_d8 = pcVar22 + 0x7a4d4;\n  iStack_b4 = **(int **)(pcVar22 + 0x73418);\n  puVar19 = *(undefined4 **)(param_2 + 0x14);\n  uStack_b8 = 0;\n  iVar11 = *(int *)(param_2 + 4);\n  ppcStack_c4 = *(code ***)(pcVar6 + 4);\n  pcVar22 = pcVar6;\n  ppcStack_d0 = ppcVar7;\n  pcStack_b0 = pcVar1;\n  pcStack_ac = pcVar10;\n  pcStack_a8 = pcVar23;\n  puStack_a4 = puVar14;\n  ppcStack_a0 = ppcVar17;\n  puStack_9c = unaff_s5;\n  puStack_98 = unaff_s6;\n  FUN_00048168();\n  ppcStack_c8 = (code **)0x0;\n  ppcStack_cc = (code **)0x0;\n  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);\n  ppcVar7 = (code **)0x0;\n  ppcVar24 = (code **)0x0;\n  ppcVar12 = ppcStack_cc;\n  while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }\n  if ((int)ppcVar7 < 1) {\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }\n  else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }\n  if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcStack_d8 + -0x741c);\n  pcVar1 = FUN_0004b15c;\n  (*pcVar23)();\n  pcVar10 = pcVar23 + 0x7a074;\n  iStack_104 = **(int **)(pcVar23 + 0x72fb8);\n  uStack_110 = 0;\n  iStack_10c = 0;\n  uStack_108 = 0;\n  uVar8 = *(uint *)(pcVar22 + 4);\n  pcStack_100 = pcVar6;\n  iStack_fc = iVar11;\n  iStack_f8 = iVar13;\n  puStack_f4 = puVar14;\n  ppcStack_f0 = ppcVar17;\n  pcStack_ec = pcVar1;\n  if (0x7f < (int)uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  uVar8 = (uint)*(ushort *)pcVar22;\n  if (0x7f < uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);\n  iVar13 = 1;\n  iVar11 = iStack_10c;\n  saferealloc(uStack_110);\n  if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcVar23 + 0x72c58);\n  iVar20 = iStack_104;\n  (*pcVar23)();\n  if (iVar11 == 0) {\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }\n  else {\n    pcVar10 = (code *)0x0;\n  }\n  iVar16 = (iVar13 - iVar11) + 1;\n  if (param_4 < 0) {\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }\n  else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}\n\n" (function_definition "void FUN_0004aa58(int param_1,code *param_2,undefined4 param_3,int param_4)\n\n{\n  code *pcVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined2 *puVar4;\n  int iVar5;\n  code *pcVar6;\n  code **ppcVar7;\n  uint uVar8;\n  int iVar9;\n  code *pcVar10;\n  int iVar11;\n  code **ppcVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  int iVar16;\n  code **ppcVar17;\n  int iVar18;\n  undefined1 *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code **ppcVar24;\n  undefined4 uStack_110;\n  int iStack_10c;\n  undefined4 uStack_108;\n  int iStack_104;\n  code *pcStack_100;\n  int iStack_fc;\n  int iStack_f8;\n  undefined4 *puStack_f4;\n  code **ppcStack_f0;\n  code *pcStack_ec;\n  code *pcStack_d8;\n  code **ppcStack_d0;\n  code **ppcStack_cc;\n  code **ppcStack_c8;\n  code **ppcStack_c4;\n  code **ppcStack_c0;\n  code *pcStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  code *pcStack_b0;\n  code *pcStack_ac;\n  code *pcStack_a8;\n  undefined4 *puStack_a4;\n  code **ppcStack_a0;\n  undefined1 *puStack_9c;\n  undefined1 *puStack_98;\n  undefined1 uStack_6d;\n  code *pcStack_6c;\n  undefined1 auStack_68 [4];\n  int iStack_64;\n  code *pcStack_60;\n  code *pcStack_5c;\n  int iStack_58;\n  undefined4 *puStack_54;\n  code **ppcStack_50;\n  undefined4 local_24;\n  code *local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000be114;\n  pcVar10 = (code *)(param_1 + 0xf8);\n  ppcVar17 = &local_20;\n  puVar14 = &local_24;\n  while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  ppcVar7 = ppcVar17;\n  puVar21 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_64 = **(int **)(puVar21 + 0x735a4);\n  pcStack_60 = pcVar1;\n  pcStack_5c = pcVar10;\n  iStack_58 = param_1;\n  puStack_54 = puVar14;\n  ppcStack_50 = ppcVar17;\n  if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }\n  if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {\n    return;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x73244);\n  (*pcVar22)();\n  pcStack_d8 = pcVar22 + 0x7a4d4;\n  iStack_b4 = **(int **)(pcVar22 + 0x73418);\n  puVar19 = *(undefined4 **)(param_2 + 0x14);\n  uStack_b8 = 0;\n  iVar11 = *(int *)(param_2 + 4);\n  ppcStack_c4 = *(code ***)(pcVar6 + 4);\n  pcVar22 = pcVar6;\n  ppcStack_d0 = ppcVar7;\n  pcStack_b0 = pcVar1;\n  pcStack_ac = pcVar10;\n  pcStack_a8 = pcVar23;\n  puStack_a4 = puVar14;\n  ppcStack_a0 = ppcVar17;\n  puStack_9c = unaff_s5;\n  puStack_98 = unaff_s6;\n  FUN_00048168();\n  ppcStack_c8 = (code **)0x0;\n  ppcStack_cc = (code **)0x0;\n  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);\n  ppcVar7 = (code **)0x0;\n  ppcVar24 = (code **)0x0;\n  ppcVar12 = ppcStack_cc;\n  while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }\n  if ((int)ppcVar7 < 1) {\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }\n  else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }\n  if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcStack_d8 + -0x741c);\n  pcVar1 = FUN_0004b15c;\n  (*pcVar23)();\n  pcVar10 = pcVar23 + 0x7a074;\n  iStack_104 = **(int **)(pcVar23 + 0x72fb8);\n  uStack_110 = 0;\n  iStack_10c = 0;\n  uStack_108 = 0;\n  uVar8 = *(uint *)(pcVar22 + 4);\n  pcStack_100 = pcVar6;\n  iStack_fc = iVar11;\n  iStack_f8 = iVar13;\n  puStack_f4 = puVar14;\n  ppcStack_f0 = ppcVar17;\n  pcStack_ec = pcVar1;\n  if (0x7f < (int)uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  uVar8 = (uint)*(ushort *)pcVar22;\n  if (0x7f < uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);\n  iVar13 = 1;\n  iVar11 = iStack_10c;\n  saferealloc(uStack_110);\n  if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcVar23 + 0x72c58);\n  iVar20 = iStack_104;\n  (*pcVar23)();\n  if (iVar11 == 0) {\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }\n  else {\n    pcVar10 = (code *)0x0;\n  }\n  iVar16 = (iVar13 - iVar11) + 1;\n  if (param_4 < 0) {\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }\n  else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" primitive_type (function_declarator "FUN_0004aa58(int param_1,code *param_2,undefined4 param_3,int param_4)" identifier (parameter_list "(int param_1,code *param_2,undefined4 param_3,int param_4)" ( (parameter_declaration "int param_1" primitive_type identifier) , (parameter_declaration "code *param_2" type_identifier (pointer_declarator "*param_2" * identifier)) , (parameter_declaration "undefined4 param_3" type_identifier identifier) , (parameter_declaration "int param_4" primitive_type identifier) ))) (compound_statement "{\n  code *pcVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined2 *puVar4;\n  int iVar5;\n  code *pcVar6;\n  code **ppcVar7;\n  uint uVar8;\n  int iVar9;\n  code *pcVar10;\n  int iVar11;\n  code **ppcVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  int iVar16;\n  code **ppcVar17;\n  int iVar18;\n  undefined1 *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code **ppcVar24;\n  undefined4 uStack_110;\n  int iStack_10c;\n  undefined4 uStack_108;\n  int iStack_104;\n  code *pcStack_100;\n  int iStack_fc;\n  int iStack_f8;\n  undefined4 *puStack_f4;\n  code **ppcStack_f0;\n  code *pcStack_ec;\n  code *pcStack_d8;\n  code **ppcStack_d0;\n  code **ppcStack_cc;\n  code **ppcStack_c8;\n  code **ppcStack_c4;\n  code **ppcStack_c0;\n  code *pcStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  code *pcStack_b0;\n  code *pcStack_ac;\n  code *pcStack_a8;\n  undefined4 *puStack_a4;\n  code **ppcStack_a0;\n  undefined1 *puStack_9c;\n  undefined1 *puStack_98;\n  undefined1 uStack_6d;\n  code *pcStack_6c;\n  undefined1 auStack_68 [4];\n  int iStack_64;\n  code *pcStack_60;\n  code *pcStack_5c;\n  int iStack_58;\n  undefined4 *puStack_54;\n  code **ppcStack_50;\n  undefined4 local_24;\n  code *local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000be114;\n  pcVar10 = (code *)(param_1 + 0xf8);\n  ppcVar17 = &local_20;\n  puVar14 = &local_24;\n  while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  ppcVar7 = ppcVar17;\n  puVar21 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_64 = **(int **)(puVar21 + 0x735a4);\n  pcStack_60 = pcVar1;\n  pcStack_5c = pcVar10;\n  iStack_58 = param_1;\n  puStack_54 = puVar14;\n  ppcStack_50 = ppcVar17;\n  if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }\n  if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {\n    return;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x73244);\n  (*pcVar22)();\n  pcStack_d8 = pcVar22 + 0x7a4d4;\n  iStack_b4 = **(int **)(pcVar22 + 0x73418);\n  puVar19 = *(undefined4 **)(param_2 + 0x14);\n  uStack_b8 = 0;\n  iVar11 = *(int *)(param_2 + 4);\n  ppcStack_c4 = *(code ***)(pcVar6 + 4);\n  pcVar22 = pcVar6;\n  ppcStack_d0 = ppcVar7;\n  pcStack_b0 = pcVar1;\n  pcStack_ac = pcVar10;\n  pcStack_a8 = pcVar23;\n  puStack_a4 = puVar14;\n  ppcStack_a0 = ppcVar17;\n  puStack_9c = unaff_s5;\n  puStack_98 = unaff_s6;\n  FUN_00048168();\n  ppcStack_c8 = (code **)0x0;\n  ppcStack_cc = (code **)0x0;\n  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);\n  ppcVar7 = (code **)0x0;\n  ppcVar24 = (code **)0x0;\n  ppcVar12 = ppcStack_cc;\n  while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }\n  if ((int)ppcVar7 < 1) {\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }\n  else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }\n  if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcStack_d8 + -0x741c);\n  pcVar1 = FUN_0004b15c;\n  (*pcVar23)();\n  pcVar10 = pcVar23 + 0x7a074;\n  iStack_104 = **(int **)(pcVar23 + 0x72fb8);\n  uStack_110 = 0;\n  iStack_10c = 0;\n  uStack_108 = 0;\n  uVar8 = *(uint *)(pcVar22 + 4);\n  pcStack_100 = pcVar6;\n  iStack_fc = iVar11;\n  iStack_f8 = iVar13;\n  puStack_f4 = puVar14;\n  ppcStack_f0 = ppcVar17;\n  pcStack_ec = pcVar1;\n  if (0x7f < (int)uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  uVar8 = (uint)*(ushort *)pcVar22;\n  if (0x7f < uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);\n  iVar13 = 1;\n  iVar11 = iStack_10c;\n  saferealloc(uStack_110);\n  if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcVar23 + 0x72c58);\n  iVar20 = iStack_104;\n  (*pcVar23)();\n  if (iVar11 == 0) {\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }\n  else {\n    pcVar10 = (code *)0x0;\n  }\n  iVar16 = (iVar13 - iVar11) + 1;\n  if (param_4 < 0) {\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }\n  else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" { (declaration "code *pcVar1;" type_identifier (pointer_declarator "*pcVar1" * identifier) ;) (declaration "int iVar2;" primitive_type identifier ;) (declaration "undefined4 uVar3;" type_identifier identifier ;) (declaration "undefined2 *puVar4;" type_identifier (pointer_declarator "*puVar4" * identifier) ;) (declaration "int iVar5;" primitive_type identifier ;) (declaration "code *pcVar6;" type_identifier (pointer_declarator "*pcVar6" * identifier) ;) (declaration "code **ppcVar7;" type_identifier (pointer_declarator "**ppcVar7" * (pointer_declarator "*ppcVar7" * identifier)) ;) (declaration "uint uVar8;" type_identifier identifier ;) (declaration "int iVar9;" primitive_type identifier ;) (declaration "code *pcVar10;" type_identifier (pointer_declarator "*pcVar10" * identifier) ;) (declaration "int iVar11;" primitive_type identifier ;) (declaration "code **ppcVar12;" type_identifier (pointer_declarator "**ppcVar12" * (pointer_declarator "*ppcVar12" * identifier)) ;) (declaration "int iVar13;" primitive_type identifier ;) (declaration "undefined4 *puVar14;" type_identifier (pointer_declarator "*puVar14" * identifier) ;) (declaration "undefined4 uVar15;" type_identifier identifier ;) (declaration "int iVar16;" primitive_type identifier ;) (declaration "code **ppcVar17;" type_identifier (pointer_declarator "**ppcVar17" * (pointer_declarator "*ppcVar17" * identifier)) ;) (declaration "int iVar18;" primitive_type identifier ;) (declaration "undefined1 *unaff_s5;" type_identifier (pointer_declarator "*unaff_s5" * identifier) ;) (declaration "undefined1 *unaff_s6;" type_identifier (pointer_declarator "*unaff_s6" * identifier) ;) (declaration "undefined4 *puVar19;" type_identifier (pointer_declarator "*puVar19" * identifier) ;) (declaration "int iVar20;" primitive_type identifier ;) (declaration "undefined *puVar21;" type_identifier (pointer_declarator "*puVar21" * identifier) ;) (declaration "code *pcVar22;" type_identifier (pointer_declarator "*pcVar22" * identifier) ;) (declaration "code *pcVar23;" type_identifier (pointer_declarator "*pcVar23" * identifier) ;) (declaration "code **ppcVar24;" type_identifier (pointer_declarator "**ppcVar24" * (pointer_declarator "*ppcVar24" * identifier)) ;) (declaration "undefined4 uStack_110;" type_identifier identifier ;) (declaration "int iStack_10c;" primitive_type identifier ;) (declaration "undefined4 uStack_108;" type_identifier identifier ;) (declaration "int iStack_104;" primitive_type identifier ;) (declaration "code *pcStack_100;" type_identifier (pointer_declarator "*pcStack_100" * identifier) ;) (declaration "int iStack_fc;" primitive_type identifier ;) (declaration "int iStack_f8;" primitive_type identifier ;) (declaration "undefined4 *puStack_f4;" type_identifier (pointer_declarator "*puStack_f4" * identifier) ;) (declaration "code **ppcStack_f0;" type_identifier (pointer_declarator "**ppcStack_f0" * (pointer_declarator "*ppcStack_f0" * identifier)) ;) (declaration "code *pcStack_ec;" type_identifier (pointer_declarator "*pcStack_ec" * identifier) ;) (declaration "code *pcStack_d8;" type_identifier (pointer_declarator "*pcStack_d8" * identifier) ;) (declaration "code **ppcStack_d0;" type_identifier (pointer_declarator "**ppcStack_d0" * (pointer_declarator "*ppcStack_d0" * identifier)) ;) (declaration "code **ppcStack_cc;" type_identifier (pointer_declarator "**ppcStack_cc" * (pointer_declarator "*ppcStack_cc" * identifier)) ;) (declaration "code **ppcStack_c8;" type_identifier (pointer_declarator "**ppcStack_c8" * (pointer_declarator "*ppcStack_c8" * identifier)) ;) (declaration "code **ppcStack_c4;" type_identifier (pointer_declarator "**ppcStack_c4" * (pointer_declarator "*ppcStack_c4" * identifier)) ;) (declaration "code **ppcStack_c0;" type_identifier (pointer_declarator "**ppcStack_c0" * (pointer_declarator "*ppcStack_c0" * identifier)) ;) (declaration "code *pcStack_bc;" type_identifier (pointer_declarator "*pcStack_bc" * identifier) ;) (declaration "undefined4 uStack_b8;" type_identifier identifier ;) (declaration "int iStack_b4;" primitive_type identifier ;) (declaration "code *pcStack_b0;" type_identifier (pointer_declarator "*pcStack_b0" * identifier) ;) (declaration "code *pcStack_ac;" type_identifier (pointer_declarator "*pcStack_ac" * identifier) ;) (declaration "code *pcStack_a8;" type_identifier (pointer_declarator "*pcStack_a8" * identifier) ;) (declaration "undefined4 *puStack_a4;" type_identifier (pointer_declarator "*puStack_a4" * identifier) ;) (declaration "code **ppcStack_a0;" type_identifier (pointer_declarator "**ppcStack_a0" * (pointer_declarator "*ppcStack_a0" * identifier)) ;) (declaration "undefined1 *puStack_9c;" type_identifier (pointer_declarator "*puStack_9c" * identifier) ;) (declaration "undefined1 *puStack_98;" type_identifier (pointer_declarator "*puStack_98" * identifier) ;) (declaration "undefined1 uStack_6d;" type_identifier identifier ;) (declaration "code *pcStack_6c;" type_identifier (pointer_declarator "*pcStack_6c" * identifier) ;) (declaration "undefined1 auStack_68 [4];" type_identifier (array_declarator "auStack_68 [4]" identifier [ number_literal ]) ;) (declaration "int iStack_64;" primitive_type identifier ;) (declaration "code *pcStack_60;" type_identifier (pointer_declarator "*pcStack_60" * identifier) ;) (declaration "code *pcStack_5c;" type_identifier (pointer_declarator "*pcStack_5c" * identifier) ;) (declaration "int iStack_58;" primitive_type identifier ;) (declaration "undefined4 *puStack_54;" type_identifier (pointer_declarator "*puStack_54" * identifier) ;) (declaration "code **ppcStack_50;" type_identifier (pointer_declarator "**ppcStack_50" * (pointer_declarator "*ppcStack_50" * identifier)) ;) (declaration "undefined4 local_24;" type_identifier identifier ;) (declaration "code *local_20;" type_identifier (pointer_declarator "*local_20" * identifier) ;) (declaration "int local_1c;" primitive_type identifier ;) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000be114;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_000be114" identifier = (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" * (cast_expression "(int *)PTR___stack_chk_guard_000be114" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar10 = (code *)(param_1 + 0xf8);" (assignment_expression "pcVar10 = (code *)(param_1 + 0xf8)" identifier = (cast_expression "(code *)(param_1 + 0xf8)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0xf8)" ( (binary_expression "param_1 + 0xf8" identifier + number_literal) )))) ;) (expression_statement "ppcVar17 = &local_20;" (assignment_expression "ppcVar17 = &local_20" identifier = (pointer_expression "&local_20" & identifier)) ;) (expression_statement "puVar14 = &local_24;" (assignment_expression "puVar14 = &local_24" identifier = (pointer_expression "&local_24" & identifier)) ;) (while_statement "while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }" while (parenthesized_expression "(pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1)" ( (comma_expression "pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1" (assignment_expression "pcVar23 = pcVar10" identifier = identifier) , (comma_expression "pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1" (assignment_expression "pcVar1 = (code *)bufchain_size()" identifier = (cast_expression "(code *)bufchain_size()" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bufchain_size()" identifier (argument_list "()" ( ))))) , (binary_expression "5 < (int)pcVar1" number_literal < (cast_expression "(int)pcVar1" ( (type_descriptor "int" primitive_type) ) identifier)))) )) (compound_statement "{\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }" { (expression_statement "bufchain_prefix(pcVar10,puVar14);" (call_expression "bufchain_prefix(pcVar10,puVar14)" identifier (argument_list "(pcVar10,puVar14)" ( identifier , identifier ))) ;) (if_statement "if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }" if (parenthesized_expression "((int)(pcVar1 + -4) <= (int)local_20)" ( (binary_expression "(int)(pcVar1 + -4) <= (int)local_20" (cast_expression "(int)(pcVar1 + -4)" ( (type_descriptor "int" primitive_type) ) (parenthesized_expression "(pcVar1 + -4)" ( (binary_expression "pcVar1 + -4" identifier + number_literal) ))) <= (cast_expression "(int)local_20" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      local_20 = pcVar1 + -5;\n    }" { (expression_statement "local_20 = pcVar1 + -5;" (assignment_expression "local_20 = pcVar1 + -5" identifier = (binary_expression "pcVar1 + -5" identifier + number_literal)) ;) })) (expression_statement "(*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);" (call_expression "(*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20)" (parenthesized_expression "(*(code *)PTR_printer_job_data_000bd630)" ( (pointer_expression "*(code *)PTR_printer_job_data_000bd630" * (cast_expression "(code *)PTR_printer_job_data_000bd630" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(*(undefined4 *)(param_1 + 0x104),local_24,local_20)" ( (pointer_expression "*(undefined4 *)(param_1 + 0x104)" * (cast_expression "(undefined4 *)(param_1 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_1 + 0x104)" ( (binary_expression "param_1 + 0x104" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "param_2 = local_20;" (assignment_expression "param_2 = local_20" identifier = identifier) ;) (expression_statement "bufchain_consume(pcVar10);" (call_expression "bufchain_consume(pcVar10)" identifier (argument_list "(pcVar10)" ( identifier ))) ;) })) (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }" if (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_000be114)" ( (binary_expression "local_1c == *(int *)PTR___stack_chk_guard_000be114" identifier == (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" * (cast_expression "(int *)PTR___stack_chk_guard_000be114" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "ppcVar7 = ppcVar17;" (assignment_expression "ppcVar7 = ppcVar17" identifier = identifier) ;) (expression_statement "puVar21 = PTR___stack_chk_fail_000bddb4;" (assignment_expression "puVar21 = PTR___stack_chk_fail_000bddb4" identifier = identifier) ;) (expression_statement "(*(code *)PTR___stack_chk_fail_000bddb4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000bddb4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000bddb4)" ( (pointer_expression "*(code *)PTR___stack_chk_fail_000bddb4" * (cast_expression "(code *)PTR___stack_chk_fail_000bddb4" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "()" ( ))) ;) (expression_statement "iStack_64 = **(int **)(puVar21 + 0x735a4);" (assignment_expression "iStack_64 = **(int **)(puVar21 + 0x735a4)" identifier = (pointer_expression "**(int **)(puVar21 + 0x735a4)" * (pointer_expression "*(int **)(puVar21 + 0x735a4)" * (cast_expression "(int **)(puVar21 + 0x735a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x735a4)" ( (binary_expression "puVar21 + 0x735a4" identifier + number_literal) )))))) ;) (expression_statement "pcStack_60 = pcVar1;" (assignment_expression "pcStack_60 = pcVar1" identifier = identifier) ;) (expression_statement "pcStack_5c = pcVar10;" (assignment_expression "pcStack_5c = pcVar10" identifier = identifier) ;) (expression_statement "iStack_58 = param_1;" (assignment_expression "iStack_58 = param_1" identifier = identifier) ;) (expression_statement "puStack_54 = puVar14;" (assignment_expression "puStack_54 = puVar14" identifier = identifier) ;) (expression_statement "ppcStack_50 = ppcVar17;" (assignment_expression "ppcStack_50 = ppcVar17" identifier = identifier) ;) (if_statement "if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }" if (parenthesized_expression "((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0))" ( (binary_expression "(*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)" (parenthesized_expression "(*(int *)(pcVar23 + 0xec) != 0)" ( (binary_expression "*(int *)(pcVar23 + 0xec) != 0" (pointer_expression "*(int *)(pcVar23 + 0xec)" * (cast_expression "(int *)(pcVar23 + 0xec)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0xec)" ( (binary_expression "pcVar23 + 0xec" identifier + number_literal) )))) != number_literal) )) || (parenthesized_expression "(pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)" ( (comma_expression "pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0" (assignment_expression "pcVar6 = pcVar23" identifier = identifier) , (binary_expression "*(int *)(pcVar23 + 0xf0) != 0" (pointer_expression "*(int *)(pcVar23 + 0xf0)" * (cast_expression "(int *)(pcVar23 + 0xf0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0xf0)" ( (binary_expression "pcVar23 + 0xf0" identifier + number_literal) )))) != number_literal)) ))) )) (compound_statement "{\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }" { (expression_statement "FUN_0004aa58(pcVar23);" (call_expression "FUN_0004aa58(pcVar23)" identifier (argument_list "(pcVar23)" ( identifier ))) ;) (expression_statement "pcVar1 = pcVar23 + 0xf8;" (assignment_expression "pcVar1 = pcVar23 + 0xf8" identifier = (binary_expression "pcVar23 + 0xf8" identifier + number_literal)) ;) (expression_statement "unaff_s5 = auStack_68;" (assignment_expression "unaff_s5 = auStack_68" identifier = identifier) ;) (expression_statement "ppcVar17 = &pcStack_6c;" (assignment_expression "ppcVar17 = &pcStack_6c" identifier = (pointer_expression "&pcStack_6c" & identifier)) ;) (expression_statement "puVar14 = (undefined4 *)0x1b;" (assignment_expression "puVar14 = (undefined4 *)0x1b" identifier = (cast_expression "(undefined4 *)0x1b" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "unaff_s6 = &uStack_6d;" (assignment_expression "unaff_s6 = &uStack_6d" identifier = (pointer_expression "&uStack_6d" & identifier)) ;) (while_statement "while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }" while (parenthesized_expression "(pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10)" ( (comma_expression "pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10" (assignment_expression "pcVar10 = (code *)bufchain_size(pcVar1)" identifier = (cast_expression "(code *)bufchain_size(pcVar1)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "bufchain_size(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))))) , (binary_expression "0 < (int)pcVar10" number_literal < (cast_expression "(int)pcVar10" ( (type_descriptor "int" primitive_type) ) identifier))) )) (compound_statement "{\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }" { (expression_statement "bufchain_prefix(pcVar1,ppcVar17,unaff_s5);" (call_expression "bufchain_prefix(pcVar1,ppcVar17,unaff_s5)" identifier (argument_list "(pcVar1,ppcVar17,unaff_s5)" ( identifier , identifier , identifier ))) ;) (expression_statement "uStack_6d = *pcStack_6c;" (assignment_expression "uStack_6d = *pcStack_6c" identifier = (pointer_expression "*pcStack_6c" * identifier)) ;) (expression_statement "ppcVar7 = (code **)0x1;" (assignment_expression "ppcVar7 = (code **)0x1" identifier = (cast_expression "(code **)0x1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (if_statement "if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }" if (parenthesized_expression "(((byte)uStack_6d & 0x7f) == 0x1b)" ( (binary_expression "((byte)uStack_6d & 0x7f) == 0x1b" (parenthesized_expression "((byte)uStack_6d & 0x7f)" ( (binary_expression "(byte)uStack_6d & 0x7f" (cast_expression "(byte)uStack_6d" ( (type_descriptor "byte" type_identifier) ) identifier) & number_literal) )) == number_literal) )) (compound_statement "{\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }" { (expression_statement "param_2 = pcVar10;" (assignment_expression "param_2 = pcVar10" identifier = identifier) ;) (expression_statement "bufchain_consume(pcVar1);" (call_expression "bufchain_consume(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) (break_statement "break;" break ;) })) (expression_statement "(**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);" (call_expression "(**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6)" (parenthesized_expression "(**(code **)(puVar21 + 0x72ac0))" ( (pointer_expression "**(code **)(puVar21 + 0x72ac0)" * (pointer_expression "*(code **)(puVar21 + 0x72ac0)" * (cast_expression "(code **)(puVar21 + 0x72ac0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x72ac0)" ( (binary_expression "puVar21 + 0x72ac0" identifier + number_literal) ))))) )) (argument_list "(*(undefined4 *)(pcVar23 + 0x104),unaff_s6)" ( (pointer_expression "*(undefined4 *)(pcVar23 + 0x104)" * (cast_expression "(undefined4 *)(pcVar23 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x104)" ( (binary_expression "pcVar23 + 0x104" identifier + number_literal) )))) , identifier ))) ;) (expression_statement "param_2 = (code *)0x1;" (assignment_expression "param_2 = (code *)0x1" identifier = (cast_expression "(code *)0x1" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) (expression_statement "bufchain_consume(pcVar1);" (call_expression "bufchain_consume(pcVar1)" identifier (argument_list "(pcVar1)" ( identifier ))) ;) })) (expression_statement "pcVar6 = *(code **)(pcVar23 + 0x104);" (assignment_expression "pcVar6 = *(code **)(pcVar23 + 0x104)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x104)" * (cast_expression "(code **)(pcVar23 + 0x104)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x104)" ( (binary_expression "pcVar23 + 0x104" identifier + number_literal) ))))) ;) (expression_statement "(**(code **)(puVar21 + 0x72ac4))();" (call_expression "(**(code **)(puVar21 + 0x72ac4))()" (parenthesized_expression "(**(code **)(puVar21 + 0x72ac4))" ( (pointer_expression "**(code **)(puVar21 + 0x72ac4)" * (pointer_expression "*(code **)(puVar21 + 0x72ac4)" * (cast_expression "(code **)(puVar21 + 0x72ac4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x72ac4)" ( (binary_expression "puVar21 + 0x72ac4" identifier + number_literal) ))))) )) (argument_list "()" ( ))) ;) (expression_statement "*(undefined4 *)(pcVar23 + 0x104) = 0;" (assignment_expression "*(undefined4 *)(pcVar23 + 0x104) = 0" (pointer_expression "*(undefined4 *)(pcVar23 + 0x104)" * (cast_expression "(undefined4 *)(pcVar23 + 0x104)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x104)" ( (binary_expression "pcVar23 + 0x104" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(pcVar23 + 0xf0) = 0;" (assignment_expression "*(undefined4 *)(pcVar23 + 0xf0) = 0" (pointer_expression "*(undefined4 *)(pcVar23 + 0xf0)" * (cast_expression "(undefined4 *)(pcVar23 + 0xf0)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0xf0)" ( (binary_expression "pcVar23 + 0xf0" identifier + number_literal) )))) = number_literal) ;) (expression_statement "*(undefined4 *)(pcVar23 + 0xec) = 0;" (assignment_expression "*(undefined4 *)(pcVar23 + 0xec) = 0" (pointer_expression "*(undefined4 *)(pcVar23 + 0xec)" * (cast_expression "(undefined4 *)(pcVar23 + 0xec)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0xec)" ( (binary_expression "pcVar23 + 0xec" identifier + number_literal) )))) = number_literal) ;) })) (if_statement "if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {\n    return;\n  }" if (parenthesized_expression "(iStack_64 == **(int **)(puVar21 + 0x735a4))" ( (binary_expression "iStack_64 == **(int **)(puVar21 + 0x735a4)" identifier == (pointer_expression "**(int **)(puVar21 + 0x735a4)" * (pointer_expression "*(int **)(puVar21 + 0x735a4)" * (cast_expression "(int **)(puVar21 + 0x735a4)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x735a4)" ( (binary_expression "puVar21 + 0x735a4" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar22 = *(code **)(puVar21 + 0x73244);" (assignment_expression "pcVar22 = *(code **)(puVar21 + 0x73244)" identifier = (pointer_expression "*(code **)(puVar21 + 0x73244)" * (cast_expression "(code **)(puVar21 + 0x73244)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(puVar21 + 0x73244)" ( (binary_expression "puVar21 + 0x73244" identifier + number_literal) ))))) ;) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" ( (pointer_expression "*pcVar22" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcStack_d8 = pcVar22 + 0x7a4d4;" (assignment_expression "pcStack_d8 = pcVar22 + 0x7a4d4" identifier = (binary_expression "pcVar22 + 0x7a4d4" identifier + number_literal)) ;) (expression_statement "iStack_b4 = **(int **)(pcVar22 + 0x73418);" (assignment_expression "iStack_b4 = **(int **)(pcVar22 + 0x73418)" identifier = (pointer_expression "**(int **)(pcVar22 + 0x73418)" * (pointer_expression "*(int **)(pcVar22 + 0x73418)" * (cast_expression "(int **)(pcVar22 + 0x73418)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar22 + 0x73418)" ( (binary_expression "pcVar22 + 0x73418" identifier + number_literal) )))))) ;) (expression_statement "puVar19 = *(undefined4 **)(param_2 + 0x14);" (assignment_expression "puVar19 = *(undefined4 **)(param_2 + 0x14)" identifier = (pointer_expression "*(undefined4 **)(param_2 + 0x14)" * (cast_expression "(undefined4 **)(param_2 + 0x14)" ( (type_descriptor "undefined4 **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(param_2 + 0x14)" ( (binary_expression "param_2 + 0x14" identifier + number_literal) ))))) ;) (expression_statement "uStack_b8 = 0;" (assignment_expression "uStack_b8 = 0" identifier = number_literal) ;) (expression_statement "iVar11 = *(int *)(param_2 + 4);" (assignment_expression "iVar11 = *(int *)(param_2 + 4)" identifier = (pointer_expression "*(int *)(param_2 + 4)" * (cast_expression "(int *)(param_2 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(param_2 + 4)" ( (binary_expression "param_2 + 4" identifier + number_literal) ))))) ;) (expression_statement "ppcStack_c4 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcStack_c4 = *(code ***)(pcVar6 + 4)" identifier = (pointer_expression "*(code ***)(pcVar6 + 4)" * (cast_expression "(code ***)(pcVar6 + 4)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" identifier = identifier) ;) (expression_statement "ppcStack_d0 = ppcVar7;" (assignment_expression "ppcStack_d0 = ppcVar7" identifier = identifier) ;) (expression_statement "pcStack_b0 = pcVar1;" (assignment_expression "pcStack_b0 = pcVar1" identifier = identifier) ;) (expression_statement "pcStack_ac = pcVar10;" (assignment_expression "pcStack_ac = pcVar10" identifier = identifier) ;) (expression_statement "pcStack_a8 = pcVar23;" (assignment_expression "pcStack_a8 = pcVar23" identifier = identifier) ;) (expression_statement "puStack_a4 = puVar14;" (assignment_expression "puStack_a4 = puVar14" identifier = identifier) ;) (expression_statement "ppcStack_a0 = ppcVar17;" (assignment_expression "ppcStack_a0 = ppcVar17" identifier = identifier) ;) (expression_statement "puStack_9c = unaff_s5;" (assignment_expression "puStack_9c = unaff_s5" identifier = identifier) ;) (expression_statement "puStack_98 = unaff_s6;" (assignment_expression "puStack_98 = unaff_s6" identifier = identifier) ;) (expression_statement "FUN_00048168();" (call_expression "FUN_00048168()" identifier (argument_list "()" ( ))) ;) (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcStack_cc = (code **)0x0;" (assignment_expression "ppcStack_cc = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);" (assignment_expression "pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" identifier = (cast_expression "(code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98" (pointer_expression "*(int *)(pcStack_d8 + -0x7bb0)" * (cast_expression "(int *)(pcStack_d8 + -0x7bb0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7bb0)" ( (binary_expression "pcStack_d8 + -0x7bb0" identifier + number_literal) )))) + number_literal) )))) ;) (expression_statement "ppcVar7 = (code **)0x0;" (assignment_expression "ppcVar7 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar24 = (code **)0x0;" (assignment_expression "ppcVar24 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar12 = ppcStack_cc;" (assignment_expression "ppcVar12 = ppcStack_cc" identifier = identifier) ;) (while_statement "while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }" while (parenthesized_expression "(ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11)" ( (comma_expression "ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11" (assignment_expression "ppcStack_cc = ppcVar12" identifier = identifier) , (comma_expression "iVar13 = iVar11 + -1, 0 < iVar11" (assignment_expression "iVar13 = iVar11 + -1" identifier = (binary_expression "iVar11 + -1" identifier + number_literal)) , (binary_expression "0 < iVar11" number_literal < identifier))) )) (compound_statement "{\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }" { (expression_statement "ppcVar17 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcVar17 = *(code ***)(pcVar6 + 4)" identifier = (pointer_expression "*(code ***)(pcVar6 + 4)" * (cast_expression "(code ***)(pcVar6 + 4)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" identifier = identifier) ;) (expression_statement "(*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);" (call_expression "(*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8)" (parenthesized_expression "(*(code *)ppcStack_d0)" ( (pointer_expression "*(code *)ppcStack_d0" * (cast_expression "(code *)ppcStack_d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6,puVar19,&uStack_b8)" ( identifier , identifier , (pointer_expression "&uStack_b8" & identifier) ))) ;) (expression_statement "ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);" (assignment_expression "ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17)" identifier = (cast_expression "(code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(*(int *)(pcVar6 + 4) - (int)ppcVar17)" ( (binary_expression "*(int *)(pcVar6 + 4) - (int)ppcVar17" (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) - (cast_expression "(int)ppcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) (expression_statement "puVar14 = puVar19 + 3;" (assignment_expression "puVar14 = puVar19 + 3" identifier = (binary_expression "puVar19 + 3" identifier + number_literal)) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) (if_statement "if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }" if (parenthesized_expression "(ppcVar24 == ppcVar12)" ( (binary_expression "ppcVar24 == ppcVar12" identifier == identifier) )) (compound_statement "{\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }" { (expression_statement "iVar20 = *(int *)pcVar6;" (assignment_expression "iVar20 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "pcVar22 = (code *)((int)ppcStack_cc + iVar20);" (assignment_expression "pcVar22 = (code *)((int)ppcStack_cc + iVar20)" identifier = (cast_expression "(code *)((int)ppcStack_cc + iVar20)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcStack_cc + iVar20)" ( (binary_expression "(int)ppcStack_cc + iVar20" (cast_expression "(int)ppcStack_cc" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) ;) (expression_statement "ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);" (assignment_expression "ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" identifier = (cast_expression "(code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (call_expression "(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x72b4))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x72b4)" * (pointer_expression "*(code **)(pcStack_d8 + -0x72b4)" * (cast_expression "(code **)(pcStack_d8 + -0x72b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x72b4)" ( (binary_expression "pcStack_d8 + -0x72b4" identifier + number_literal) ))))) )) (argument_list "(pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" ( identifier , (binary_expression "(int)ppcVar17 + iVar20" (cast_expression "(int)ppcVar17" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , identifier ))))) ;) (if_statement "if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }" if (parenthesized_expression "(ppcStack_c0 != (code **)0x0)" ( (binary_expression "ppcStack_c0 != (code **)0x0" identifier != (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }" { (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (goto_statement "goto LAB_0004affc;" goto statement_identifier ;) })) (if_statement "if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }" if (parenthesized_expression "((int)ppcVar12 < 2)" ( (binary_expression "(int)ppcVar12 < 2" (cast_expression "(int)ppcVar12" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }" { (if_statement "if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;" if (parenthesized_expression "(ppcStack_c8 != (code **)0x0)" ( (binary_expression "ppcStack_c8 != (code **)0x0" identifier != (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (goto_statement "goto LAB_0004b138;" goto statement_identifier ;)) (expression_statement "ppcStack_c8 = (code **)0x1;" (assignment_expression "ppcStack_c8 = (code **)0x1" identifier = (cast_expression "(code **)0x1" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (goto_statement "goto LAB_0004affc;" goto statement_identifier ;) })) (expression_statement "iVar16 = (int)ppcVar7 + -1;" (assignment_expression "iVar16 = (int)ppcVar7 + -1" identifier = (binary_expression "(int)ppcVar7 + -1" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;) (if_statement "if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }" if (parenthesized_expression "(ppcStack_c8 != (code **)0x0)" ( (binary_expression "ppcStack_c8 != (code **)0x0" identifier != (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }" { (labeled_statement "LAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;" statement_identifier : (expression_statement "iVar16 = (int)ppcVar7 + -2;" (assignment_expression "iVar16 = (int)ppcVar7 + -2" identifier = (binary_expression "(int)ppcVar7 + -2" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal)) ;)) (if_statement "if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" if (parenthesized_expression "((int)ppcVar7 + -1 < 1)" ( (binary_expression "(int)ppcVar7 + -1 < 1" (binary_expression "(int)ppcVar7 + -1" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) < number_literal) )) (compound_statement "{\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a54" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);" (assignment_expression "ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24)" identifier = (cast_expression "(code **)((int)ppcStack_cc - (int)ppcVar24)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcStack_cc - (int)ppcVar24)" ( (binary_expression "(int)ppcStack_cc - (int)ppcVar24" (cast_expression "(int)ppcStack_cc" ( (type_descriptor "int" primitive_type) ) identifier) - (cast_expression "(int)ppcVar24" ( (type_descriptor "int" primitive_type) ) identifier)) )))) ;) })) (expression_statement "ppcVar17 = ppcStack_cc;" (assignment_expression "ppcVar17 = ppcStack_cc" identifier = identifier) ;) (if_statement "if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }" if (parenthesized_expression "(iVar16 == 0)" ( (binary_expression "iVar16 == 0" identifier == number_literal) )) (compound_statement "{\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }" { (if_statement "if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" if (parenthesized_expression "((code **)((int)ppcStack_c4 + 1) != ppcStack_cc)" ( (binary_expression "(code **)((int)ppcStack_c4 + 1) != ppcStack_cc" (cast_expression "(code **)((int)ppcStack_c4 + 1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcStack_c4 + 1)" ( (binary_expression "(int)ppcStack_c4 + 1" (cast_expression "(int)ppcStack_c4" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) ))) != identifier) )) (compound_statement "{\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a60" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;" (assignment_expression "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc" (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = (binary_expression "(int)ppcVar24 + (int)ppcStack_cc" (cast_expression "(int)ppcVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppcStack_cc" ( (type_descriptor "int" primitive_type) ) identifier))) ;) }) (else_clause "else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }" else (compound_statement "{\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }" { (expression_statement "(**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);" (call_expression "(**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x76e0))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x76e0)" * (pointer_expression "*(code **)(pcStack_d8 + -0x76e0)" * (cast_expression "(code **)(pcStack_d8 + -0x76e0)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x76e0)" ( (binary_expression "pcStack_d8 + -0x76e0" identifier + number_literal) ))))) )) (argument_list "((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24)" ( (binary_expression "(int)ppcStack_cc + iVar20 + 1" (binary_expression "(int)ppcStack_cc + iVar20" (cast_expression "(int)ppcStack_cc" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) + number_literal) , (binary_expression "(int)ppcStack_cc + iVar20" (cast_expression "(int)ppcStack_cc" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) , identifier ))) ;) (expression_statement "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;" (assignment_expression "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1" (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = (binary_expression "(int)ppcVar24 + (int)ppcVar17 + 1" (binary_expression "(int)ppcVar24 + (int)ppcVar17" (cast_expression "(int)ppcVar24" ( (type_descriptor "int" primitive_type) ) identifier) + (cast_expression "(int)ppcVar17" ( (type_descriptor "int" primitive_type) ) identifier)) + number_literal)) ;) (if_statement "if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" if (parenthesized_expression "(0x7f < iVar16 - 1U)" ( (binary_expression "0x7f < iVar16 - 1U" number_literal < (binary_expression "iVar16 - 1U" identifier - number_literal)) )) (compound_statement "{\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a78" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;" (assignment_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1" (pointer_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6)" * (cast_expression "(char *)((int)ppcStack_c4 + *(int *)pcVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcStack_c4 + *(int *)pcVar6)" ( (binary_expression "(int)ppcStack_c4 + *(int *)pcVar6" (cast_expression "(int)ppcStack_c4" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )))) = (binary_expression "(char)iVar16 + -1" (cast_expression "(char)iVar16" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) (expression_statement "ppcStack_c4 = ppcStack_cc;" (assignment_expression "ppcStack_c4 = ppcStack_cc" identifier = identifier) ;) }))) (expression_statement "ppcVar17 = ppcStack_c4;" (assignment_expression "ppcVar17 = ppcStack_c4" identifier = identifier) ;) (expression_statement "iVar20 = 3;" (assignment_expression "iVar20 = 3" identifier = number_literal) ;) (if_statement "if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }" if (parenthesized_expression "(ppcStack_c8 == (code **)0x0)" ( (binary_expression "ppcStack_c8 == (code **)0x0" identifier == (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        iVar20 = 2;\n      }" { (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" identifier = number_literal) ;) })) (if_statement "if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }" if (parenthesized_expression "(iVar13 < 1)" ( (binary_expression "iVar13 < 1" identifier < number_literal) )) (compound_statement "{\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }" { (labeled_statement "LAB_0004af8c:\n        iVar16 = *(int *)pcVar6;" statement_identifier : (expression_statement "iVar16 = *(int *)pcVar6;" (assignment_expression "iVar16 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;)) }) (else_clause "else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }" else (compound_statement "{\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }" { (do_statement "do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);" do (compound_statement "{\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        }" { (expression_statement "uVar3 = uStack_b8;" (assignment_expression "uVar3 = uStack_b8" identifier = identifier) ;) (expression_statement "iVar16 = *(int *)(pcVar6 + 4);" (assignment_expression "iVar16 = *(int *)(pcVar6 + 4)" identifier = (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "(*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);" (call_expression "(*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8)" (parenthesized_expression "(*(code *)ppcStack_d0)" ( (pointer_expression "*(code *)ppcStack_d0" * (cast_expression "(code *)ppcStack_d0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier)) )) (argument_list "(pcVar6,puVar14,&uStack_b8)" ( identifier , identifier , (pointer_expression "&uStack_b8" & identifier) ))) ;) (expression_statement "iVar11 = *(int *)(pcVar6 + 4);" (assignment_expression "iVar11 = *(int *)(pcVar6 + 4)" identifier = (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "*(int *)(pcVar6 + 4) = iVar16;" (assignment_expression "*(int *)(pcVar6 + 4) = iVar16" (pointer_expression "*(int *)(pcVar6 + 4)" * (cast_expression "(int *)(pcVar6 + 4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = identifier) ;) (if_statement "if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }" if (parenthesized_expression "((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0))" ( (binary_expression "(ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)" (parenthesized_expression "(ppcVar12 != (code **)(iVar11 - iVar16))" ( (binary_expression "ppcVar12 != (code **)(iVar11 - iVar16)" identifier != (cast_expression "(code **)(iVar11 - iVar16)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(iVar11 - iVar16)" ( (binary_expression "iVar11 - iVar16" identifier - identifier) )))) )) || (parenthesized_expression "(iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)" ( (comma_expression "iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0" (assignment_expression "iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16)" identifier = (call_expression "(**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x72b4))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x72b4)" * (pointer_expression "*(code **)(pcStack_d8 + -0x72b4)" * (cast_expression "(code **)(pcStack_d8 + -0x72b4)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x72b4)" ( (binary_expression "pcStack_d8 + -0x72b4" identifier + number_literal) ))))) )) (argument_list "((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16)" ( (binary_expression "(int)ppcVar17 + *(int *)pcVar6 + 1" (binary_expression "(int)ppcVar17 + *(int *)pcVar6" (cast_expression "(int)ppcVar17" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) + number_literal) , (binary_expression "*(int *)pcVar6 + iVar16" (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier)) + identifier) )))) , (binary_expression "iVar11 != 0" identifier != number_literal)) ))) )) (compound_statement "{\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }" { (labeled_statement "LAB_0004af7c:\n            uStack_b8 = uVar3;" statement_identifier : (expression_statement "uStack_b8 = uVar3;" (assignment_expression "uStack_b8 = uVar3" identifier = identifier) ;)) (expression_statement "param_4 = *(int *)(pcStack_d8 + -0x7f68);" (assignment_expression "param_4 = *(int *)(pcStack_d8 + -0x7f68)" identifier = (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) ))))) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) (if_statement "if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }" if (parenthesized_expression "(0x7f < iVar20 - 2U)" ( (binary_expression "0x7f < iVar20 - 2U" number_literal < (binary_expression "iVar20 - 2U" identifier - number_literal)) )) (compound_statement "{\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a98" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "param_4 + 0x3488" identifier + number_literal) ))) ;) (return_statement "return;" return ;) })) (goto_statement "goto LAB_0004af8c;" goto statement_identifier ;) })) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" identifier = (binary_expression "iVar13 + -1" identifier + number_literal)) ;) (expression_statement "puVar14 = puVar14 + 3;" (assignment_expression "puVar14 = puVar14 + 3" identifier = (binary_expression "puVar14 + 3" identifier + number_literal)) ;) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" identifier = (binary_expression "iVar20 + 1" identifier + number_literal)) ;) (expression_statement "uVar3 = uStack_b8;" (assignment_expression "uVar3 = uStack_b8" identifier = identifier) ;) (if_statement "if (iVar13 == 0) goto LAB_0004af7c;" if (parenthesized_expression "(iVar13 == 0)" ( (binary_expression "iVar13 == 0" identifier == number_literal) )) (goto_statement "goto LAB_0004af7c;" goto statement_identifier ;)) }) while (parenthesized_expression "(iVar20 != 0x81)" ( (binary_expression "iVar20 != 0x81" identifier != number_literal) )) ;) (expression_statement "iVar16 = *(int *)pcVar6;" (assignment_expression "iVar16 = *(int *)pcVar6" identifier = (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) ;) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" identifier = identifier) ;) }))) (expression_statement "*(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';" (assignment_expression "*(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~'" (pointer_expression "*(char *)((int)ppcStack_c4 + iVar16)" * (cast_expression "(char *)((int)ppcStack_c4 + iVar16)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcStack_c4 + iVar16)" ( (binary_expression "(int)ppcStack_c4 + iVar16" (cast_expression "(int)ppcStack_c4" ( (type_descriptor "int" primitive_type) ) identifier) + identifier) )))) = (binary_expression "(char)iVar20 + '~'" (cast_expression "(char)iVar20" ( (type_descriptor "char" primitive_type) ) identifier) + (char_literal "'~'" ' character '))) ;) (expression_statement "ppcStack_c4 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcStack_c4 = *(code ***)(pcVar6 + 4)" identifier = (pointer_expression "*(code ***)(pcVar6 + 4)" * (cast_expression "(code ***)(pcVar6 + 4)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" identifier = identifier) ;) (expression_statement "(*pcStack_bc)(pcVar6,0);" (call_expression "(*pcStack_bc)(pcVar6,0)" (parenthesized_expression "(*pcStack_bc)" ( (pointer_expression "*pcStack_bc" * identifier) )) (argument_list "(pcVar6,0)" ( identifier , number_literal ))) ;) (expression_statement "ppcStack_c8 = ppcStack_c0;" (assignment_expression "ppcStack_c8 = ppcStack_c0" identifier = identifier) ;) (expression_statement "ppcVar17 = ppcStack_c0;" (assignment_expression "ppcVar17 = ppcStack_c0" identifier = identifier) ;) (expression_statement "ppcVar7 = ppcStack_c0;" (assignment_expression "ppcVar7 = ppcStack_c0" identifier = identifier) ;) (expression_statement "puVar19 = puVar14;" (assignment_expression "puVar19 = puVar14" identifier = identifier) ;) (expression_statement "ppcVar24 = ppcStack_c0;" (assignment_expression "ppcVar24 = ppcStack_c0" identifier = identifier) ;) (expression_statement "ppcVar12 = ppcStack_c0;" (assignment_expression "ppcVar12 = ppcStack_c0" identifier = identifier) ;) }) (else_clause "else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }" else (compound_statement "{\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }" { (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (labeled_statement "LAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);" statement_identifier : (expression_statement "ppcVar7 = (code **)((int)ppcVar7 + 1);" (assignment_expression "ppcVar7 = (code **)((int)ppcVar7 + 1)" identifier = (cast_expression "(code **)((int)ppcVar7 + 1)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "((int)ppcVar7 + 1)" ( (binary_expression "(int)ppcVar7 + 1" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) + number_literal) )))) ;)) (expression_statement "puVar19 = puVar14;" (assignment_expression "puVar19 = puVar14" identifier = identifier) ;) (expression_statement "ppcVar24 = ppcVar12;" (assignment_expression "ppcVar24 = ppcVar12" identifier = identifier) ;) (expression_statement "ppcVar12 = ppcVar17;" (assignment_expression "ppcVar12 = ppcVar17" identifier = identifier) ;) (if_statement "if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }" if (parenthesized_expression "(ppcVar7 == (code **)0x80)" ( (binary_expression "ppcVar7 == (code **)0x80" identifier == (cast_expression "(code **)0x80" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) )) (compound_statement "{\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }" { (expression_statement "*(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;" (assignment_expression "*(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f" (pointer_expression "*(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6)" * (cast_expression "(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6)" ( (type_descriptor "undefined1 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcStack_c4 + *(int *)pcVar6)" ( (binary_expression "(int)ppcStack_c4 + *(int *)pcVar6" (cast_expression "(int)ppcStack_c4" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )))) = number_literal) ;) (expression_statement "ppcStack_c4 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcStack_c4 = *(code ***)(pcVar6 + 4)" identifier = (pointer_expression "*(code ***)(pcVar6 + 4)" * (cast_expression "(code ***)(pcVar6 + 4)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" identifier = identifier) ;) (expression_statement "(*pcStack_bc)(pcVar6,0);" (call_expression "(*pcStack_bc)(pcVar6,0)" (parenthesized_expression "(*pcStack_bc)" ( (pointer_expression "*pcStack_bc" * identifier) )) (argument_list "(pcVar6,0)" ( identifier , number_literal ))) ;) (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar17 = (code **)0x0;" (assignment_expression "ppcVar17 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar7 = (code **)0x0;" (assignment_expression "ppcVar7 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar24 = (code **)0x0;" (assignment_expression "ppcVar24 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) (expression_statement "ppcVar12 = (code **)0x0;" (assignment_expression "ppcVar12 = (code **)0x0" identifier = (cast_expression "(code **)0x0" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) number_literal)) ;) })) }))) })) (if_statement "if ((int)ppcVar7 < 1) {\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }\n  else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }" if (parenthesized_expression "((int)ppcVar7 < 1)" ( (binary_expression "(int)ppcVar7 < 1" (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier) < number_literal) )) (compound_statement "{\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }" { (expression_statement "*(code ***)(pcVar6 + 4) = ppcStack_c4;" (assignment_expression "*(code ***)(pcVar6 + 4) = ppcStack_c4" (pointer_expression "*(code ***)(pcVar6 + 4)" * (cast_expression "(code ***)(pcVar6 + 4)" ( (type_descriptor "code ***" type_identifier (abstract_pointer_declarator "***" * (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *)))) ) (parenthesized_expression "(pcVar6 + 4)" ( (binary_expression "pcVar6 + 4" identifier + number_literal) )))) = identifier) ;) }) (else_clause "else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }" else (compound_statement "{\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }" { (if_statement "if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }" if (parenthesized_expression "(0x80 < (int)ppcVar7)" ( (binary_expression "0x80 < (int)ppcVar7" number_literal < (cast_expression "(int)ppcVar7" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }" { (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" ( (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" * (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" * (cast_expression "(code **)(pcStack_d8 + -0x7774)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x7774)" ( (binary_expression "pcStack_d8 + -0x7774" identifier + number_literal) ))))) )) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" ( (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a88" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) , number_literal , (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" * (cast_expression "(int *)(pcStack_d8 + -0x7f68)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcStack_d8 + -0x7f68)" ( (binary_expression "pcStack_d8 + -0x7f68" identifier + number_literal) )))) + number_literal) ))) ;) (return_statement "return;" return ;) })) (expression_statement "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;" (assignment_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1" (pointer_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6)" * (cast_expression "(char *)((int)ppcStack_c4 + *(int *)pcVar6)" ( (type_descriptor "char *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "((int)ppcStack_c4 + *(int *)pcVar6)" ( (binary_expression "(int)ppcStack_c4 + *(int *)pcVar6" (cast_expression "(int)ppcStack_c4" ( (type_descriptor "int" primitive_type) ) identifier) + (pointer_expression "*(int *)pcVar6" * (cast_expression "(int *)pcVar6" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) identifier))) )))) = (binary_expression "(char)ppcVar7 + -1" (cast_expression "(char)ppcVar7" ( (type_descriptor "char" primitive_type) ) identifier) + number_literal)) ;) }))) (if_statement "if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {\n    return;\n  }" if (parenthesized_expression "(iStack_b4 == **(int **)(pcStack_d8 + -0x70bc))" ( (binary_expression "iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)" identifier == (pointer_expression "**(int **)(pcStack_d8 + -0x70bc)" * (pointer_expression "*(int **)(pcStack_d8 + -0x70bc)" * (cast_expression "(int **)(pcStack_d8 + -0x70bc)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x70bc)" ( (binary_expression "pcStack_d8 + -0x70bc" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar23 = *(code **)(pcStack_d8 + -0x741c);" (assignment_expression "pcVar23 = *(code **)(pcStack_d8 + -0x741c)" identifier = (pointer_expression "*(code **)(pcStack_d8 + -0x741c)" * (cast_expression "(code **)(pcStack_d8 + -0x741c)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcStack_d8 + -0x741c)" ( (binary_expression "pcStack_d8 + -0x741c" identifier + number_literal) ))))) ;) (expression_statement "pcVar1 = FUN_0004b15c;" (assignment_expression "pcVar1 = FUN_0004b15c" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (expression_statement "pcVar10 = pcVar23 + 0x7a074;" (assignment_expression "pcVar10 = pcVar23 + 0x7a074" identifier = (binary_expression "pcVar23 + 0x7a074" identifier + number_literal)) ;) (expression_statement "iStack_104 = **(int **)(pcVar23 + 0x72fb8);" (assignment_expression "iStack_104 = **(int **)(pcVar23 + 0x72fb8)" identifier = (pointer_expression "**(int **)(pcVar23 + 0x72fb8)" * (pointer_expression "*(int **)(pcVar23 + 0x72fb8)" * (cast_expression "(int **)(pcVar23 + 0x72fb8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x72fb8)" ( (binary_expression "pcVar23 + 0x72fb8" identifier + number_literal) )))))) ;) (expression_statement "uStack_110 = 0;" (assignment_expression "uStack_110 = 0" identifier = number_literal) ;) (expression_statement "iStack_10c = 0;" (assignment_expression "iStack_10c = 0" identifier = number_literal) ;) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" identifier = number_literal) ;) (expression_statement "uVar8 = *(uint *)(pcVar22 + 4);" (assignment_expression "uVar8 = *(uint *)(pcVar22 + 4)" identifier = (pointer_expression "*(uint *)(pcVar22 + 4)" * (cast_expression "(uint *)(pcVar22 + 4)" ( (type_descriptor "uint *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar22 + 4)" ( (binary_expression "pcVar22 + 4" identifier + number_literal) ))))) ;) (expression_statement "pcStack_100 = pcVar6;" (assignment_expression "pcStack_100 = pcVar6" identifier = identifier) ;) (expression_statement "iStack_fc = iVar11;" (assignment_expression "iStack_fc = iVar11" identifier = identifier) ;) (expression_statement "iStack_f8 = iVar13;" (assignment_expression "iStack_f8 = iVar13" identifier = identifier) ;) (expression_statement "puStack_f4 = puVar14;" (assignment_expression "puStack_f4 = puVar14" identifier = identifier) ;) (expression_statement "ppcStack_f0 = ppcVar17;" (assignment_expression "ppcStack_f0 = ppcVar17" identifier = identifier) ;) (expression_statement "pcStack_ec = pcVar1;" (assignment_expression "pcStack_ec = pcVar1" identifier = identifier) ;) (if_statement "if (0x7f < (int)uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }" if (parenthesized_expression "(0x7f < (int)uVar8)" ( (binary_expression "0x7f < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) (compound_statement "{\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }" { (do_statement "do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);" do (compound_statement "{\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    }" { (expression_statement "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);" (call_expression "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" identifier (argument_list "(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" ( (pointer_expression "&uStack_110" & identifier) , (binary_expression "(uVar8 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar8 | 0xffffff80)" ( (binary_expression "uVar8 | 0xffffff80" identifier | number_literal) )) & number_literal) ))) ;) (expression_statement "uVar8 = (int)uVar8 >> 7;" (assignment_expression "uVar8 = (int)uVar8 >> 7" identifier = (binary_expression "(int)uVar8 >> 7" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }) while (parenthesized_expression "(0x7f < (int)uVar8)" ( (binary_expression "0x7f < (int)uVar8" number_literal < (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier)) )) ;) })) (expression_statement "FUN_00048168(&uStack_110,uVar8 & 0xff);" (call_expression "FUN_00048168(&uStack_110,uVar8 & 0xff)" identifier (argument_list "(&uStack_110,uVar8 & 0xff)" ( (pointer_expression "&uStack_110" & identifier) , (binary_expression "uVar8 & 0xff" identifier & number_literal) ))) ;) (expression_statement "uVar8 = (uint)*(ushort *)pcVar22;" (assignment_expression "uVar8 = (uint)*(ushort *)pcVar22" identifier = (binary_expression "(uint)*(ushort *)pcVar22" (parenthesized_expression "(uint)" ( identifier )) * (cast_expression "(ushort *)pcVar22" ( (type_descriptor "ushort *" type_identifier (abstract_pointer_declarator "*" *)) ) identifier))) ;) (if_statement "if (0x7f < uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }" if (parenthesized_expression "(0x7f < uVar8)" ( (binary_expression "0x7f < uVar8" number_literal < identifier) )) (compound_statement "{\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }" { (do_statement "do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);" do (compound_statement "{\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    }" { (expression_statement "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);" (call_expression "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" identifier (argument_list "(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" ( (pointer_expression "&uStack_110" & identifier) , (binary_expression "(uVar8 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar8 | 0xffffff80)" ( (binary_expression "uVar8 | 0xffffff80" identifier | number_literal) )) & number_literal) ))) ;) (expression_statement "uVar8 = (int)uVar8 >> 7;" (assignment_expression "uVar8 = (int)uVar8 >> 7" identifier = (binary_expression "(int)uVar8 >> 7" (cast_expression "(int)uVar8" ( (type_descriptor "int" primitive_type) ) identifier) >> number_literal)) ;) }) while (parenthesized_expression "(0x7f < uVar8)" ( (binary_expression "0x7f < uVar8" number_literal < identifier) )) ;) })) (expression_statement "FUN_00048168(&uStack_110,uVar8 & 0xff);" (call_expression "FUN_00048168(&uStack_110,uVar8 & 0xff)" identifier (argument_list "(&uStack_110,uVar8 & 0xff)" ( (pointer_expression "&uStack_110" & identifier) , (binary_expression "uVar8 & 0xff" identifier & number_literal) ))) ;) (expression_statement "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);" (call_expression "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4)" identifier (argument_list "(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4)" ( (pointer_expression "&uStack_110" & identifier) , identifier , (binary_expression "*(int *)(pcVar23 + 0x724c4) + -0x7cc4" (pointer_expression "*(int *)(pcVar23 + 0x724c4)" * (cast_expression "(int *)(pcVar23 + 0x724c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x724c4)" ( (binary_expression "pcVar23 + 0x724c4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);" (call_expression "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8)" identifier (argument_list "(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8)" ( (pointer_expression "&uStack_110" & identifier) , identifier , (binary_expression "*(int *)(pcVar23 + 0x724c4) + -0x7df8" (pointer_expression "*(int *)(pcVar23 + 0x724c4)" * (cast_expression "(int *)(pcVar23 + 0x724c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x724c4)" ( (binary_expression "pcVar23 + 0x724c4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);" (call_expression "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08)" identifier (argument_list "(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08)" ( (pointer_expression "&uStack_110" & identifier) , identifier , (binary_expression "*(int *)(pcVar23 + 0x724c4) + -0x6e08" (pointer_expression "*(int *)(pcVar23 + 0x724c4)" * (cast_expression "(int *)(pcVar23 + 0x724c4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x724c4)" ( (binary_expression "pcVar23 + 0x724c4" identifier + number_literal) )))) + number_literal) ))) ;) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" identifier = number_literal) ;) (expression_statement "iVar11 = iStack_10c;" (assignment_expression "iVar11 = iStack_10c" identifier = identifier) ;) (expression_statement "saferealloc(uStack_110);" (call_expression "saferealloc(uStack_110)" identifier (argument_list "(uStack_110)" ( identifier ))) ;) (if_statement "if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {\n    return;\n  }" if (parenthesized_expression "(iStack_104 == **(int **)(pcVar23 + 0x72fb8))" ( (binary_expression "iStack_104 == **(int **)(pcVar23 + 0x72fb8)" identifier == (pointer_expression "**(int **)(pcVar23 + 0x72fb8)" * (pointer_expression "*(int **)(pcVar23 + 0x72fb8)" * (cast_expression "(int **)(pcVar23 + 0x72fb8)" ( (type_descriptor "int **" primitive_type (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x72fb8)" ( (binary_expression "pcVar23 + 0x72fb8" identifier + number_literal) )))))) )) (compound_statement "{\n    return;\n  }" { (return_statement "return;" return ;) })) (expression_statement "pcVar23 = *(code **)(pcVar23 + 0x72c58);" (assignment_expression "pcVar23 = *(code **)(pcVar23 + 0x72c58)" identifier = (pointer_expression "*(code **)(pcVar23 + 0x72c58)" * (cast_expression "(code **)(pcVar23 + 0x72c58)" ( (type_descriptor "code **" type_identifier (abstract_pointer_declarator "**" * (abstract_pointer_declarator "*" *))) ) (parenthesized_expression "(pcVar23 + 0x72c58)" ( (binary_expression "pcVar23 + 0x72c58" identifier + number_literal) ))))) ;) (expression_statement "iVar20 = iStack_104;" (assignment_expression "iVar20 = iStack_104" identifier = identifier) ;) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" ( (pointer_expression "*pcVar23" * identifier) )) (argument_list "()" ( ))) ;) (if_statement "if (iVar11 == 0) {\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }\n  else {\n    pcVar10 = (code *)0x0;\n  }" if (parenthesized_expression "(iVar11 == 0)" ( (binary_expression "iVar11 == 0" identifier == number_literal) )) (compound_statement "{\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }" { (if_statement "if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }" if (parenthesized_expression "(*(int *)(iVar20 + 0x1a4) != 0)" ( (binary_expression "*(int *)(iVar20 + 0x1a4) != 0" (pointer_expression "*(int *)(iVar20 + 0x1a4)" * (cast_expression "(int *)(iVar20 + 0x1a4)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x1a4)" ( (binary_expression "iVar20 + 0x1a4" identifier + number_literal) )))) != number_literal) )) (compound_statement "{\n      pcVar10 = (code *)0x0;\n    }" { (expression_statement "pcVar10 = (code *)0x0;" (assignment_expression "pcVar10 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) })) }) (else_clause "else {\n    pcVar10 = (code *)0x0;\n  }" else (compound_statement "{\n    pcVar10 = (code *)0x0;\n  }" { (expression_statement "pcVar10 = (code *)0x0;" (assignment_expression "pcVar10 = (code *)0x0" identifier = (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) ;) }))) (expression_statement "iVar16 = (iVar13 - iVar11) + 1;" (assignment_expression "iVar16 = (iVar13 - iVar11) + 1" identifier = (binary_expression "(iVar13 - iVar11) + 1" (parenthesized_expression "(iVar13 - iVar11)" ( (binary_expression "iVar13 - iVar11" identifier - identifier) )) + number_literal)) ;) (if_statement "if (param_4 < 0) {\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }\n  else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }" if (parenthesized_expression "(param_4 < 0)" ( (binary_expression "param_4 < 0" identifier < number_literal) )) (compound_statement "{\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }" { (if_statement "if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }" if (parenthesized_expression "(-param_4 <= iVar16)" ( (binary_expression "-param_4 <= iVar16" (unary_expression "-param_4" - identifier) <= identifier) )) (compound_statement "{\n      iVar16 = -param_4;\n    }" { (expression_statement "iVar16 = -param_4;" (assignment_expression "iVar16 = -param_4" identifier = (unary_expression "-param_4" - identifier)) ;) })) (expression_statement "iVar18 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar18 = *(int *)(pcVar23 + 0x722f0)" identifier = (pointer_expression "*(int *)(pcVar23 + 0x722f0)" * (cast_expression "(int *)(pcVar23 + 0x722f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x722f0)" ( (binary_expression "pcVar23 + 0x722f0" identifier + number_literal) ))))) ;) (expression_statement "iVar2 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar2 = *(int *)(pcVar23 + 0x722f0)" identifier = (pointer_expression "*(int *)(pcVar23 + 0x722f0)" * (cast_expression "(int *)(pcVar23 + 0x722f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x722f0)" ( (binary_expression "pcVar23 + 0x722f0" identifier + number_literal) ))))) ;) (for_statement "for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }" for ( ; (binary_expression "0 < iVar16" number_literal < identifier) ; (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ) (compound_statement "{\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }" { (expression_statement "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);" (assignment_expression "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13)" identifier = (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "delpos234(*(undefined4 *)(iVar20 + 8),iVar13)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),iVar13)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "(*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));" (call_expression "(*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (parenthesized_expression "(*(code *)(iVar18 + -0x6c2c))" ( (pointer_expression "*(code *)(iVar18 + -0x6c2c)" * (cast_expression "(code *)(iVar18 + -0x6c2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + -0x6c2c)" ( (binary_expression "iVar18 + -0x6c2c" identifier + number_literal) )))) )) (argument_list "(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar20 + 300)" * (cast_expression "(undefined4 *)(iVar20 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }" if (parenthesized_expression "(0 < *(int *)(iVar20 + 300))" ( (binary_expression "0 < *(int *)(iVar20 + 300)" number_literal < (pointer_expression "*(int *)(iVar20 + 300)" * (cast_expression "(int *)(iVar20 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) ))))) )) (compound_statement "{\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }" { (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" identifier = number_literal) ;) (do_statement "do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));" do (compound_statement "{\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        }" { (expression_statement "(*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);" (call_expression "(*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54)" (parenthesized_expression "(*(code *)(iVar2 + -0x76f0))" ( (pointer_expression "*(code *)(iVar2 + -0x76f0)" * (cast_expression "(code *)(iVar2 + -0x76f0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x76f0)" ( (binary_expression "iVar2 + -0x76f0" identifier + number_literal) )))) )) (argument_list "(puVar4,iVar9,iVar20 + 0x54)" ( identifier , identifier , (binary_expression "iVar20 + 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 *)(iVar20 + 300))" ( (binary_expression "iVar9 < *(int *)(iVar20 + 300)" identifier < (pointer_expression "*(int *)(iVar20 + 300)" * (cast_expression "(int *)(iVar20 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) ))))) )) ;) })) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar11)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (expression_statement "iVar9 = *(int *)(iVar20 + 0xe54);" (assignment_expression "iVar9 = *(int *)(iVar20 + 0xe54)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) ))))) ;) (if_statement "if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }" if (parenthesized_expression "((iVar11 <= iVar9) && (iVar9 <= iVar13))" ( (binary_expression "(iVar11 <= iVar9) && (iVar9 <= iVar13)" (parenthesized_expression "(iVar11 <= iVar9)" ( (binary_expression "iVar11 <= iVar9" identifier <= identifier) )) && (parenthesized_expression "(iVar9 <= iVar13)" ( (binary_expression "iVar9 <= iVar13" identifier <= identifier) ))) )) (compound_statement "{\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }" { (if_statement "if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }" if (parenthesized_expression "(iVar13 < iVar9 + 1)" ( (binary_expression "iVar13 < iVar9 + 1" identifier < (binary_expression "iVar9 + 1" identifier + number_literal)) )) (compound_statement "{\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }" { (expression_statement "*(int *)(iVar20 + 0xe54) = iVar13 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar13 + 1" (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) )))) = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe58)" * (cast_expression "(undefined4 *)(iVar20 + 0xe58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe58)" ( (binary_expression "iVar20 + 0xe58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }" else (compound_statement "{\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }" { (expression_statement "*(int *)(iVar20 + 0xe54) = iVar9 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar9 + 1" (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) )))) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar9 = *(int *)(iVar20 + 0xe5c);" (assignment_expression "iVar9 = *(int *)(iVar20 + 0xe5c)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) ))))) ;) (if_statement "if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }" if (parenthesized_expression "((iVar11 <= iVar9) && (iVar9 <= iVar13))" ( (binary_expression "(iVar11 <= iVar9) && (iVar9 <= iVar13)" (parenthesized_expression "(iVar11 <= iVar9)" ( (binary_expression "iVar11 <= iVar9" identifier <= identifier) )) && (parenthesized_expression "(iVar9 <= iVar13)" ( (binary_expression "iVar9 <= iVar13" identifier <= identifier) ))) )) (compound_statement "{\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }" { (if_statement "if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }" if (parenthesized_expression "(iVar13 < iVar9 + 1)" ( (binary_expression "iVar13 < iVar9 + 1" identifier < (binary_expression "iVar9 + 1" identifier + number_literal)) )) (compound_statement "{\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }" { (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar13 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar13 + 1" (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) )))) = (binary_expression "iVar13 + 1" identifier + number_literal)) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe60)" * (cast_expression "(undefined4 *)(iVar20 + 0xe60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe60)" ( (binary_expression "iVar20 + 0xe60" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }" else (compound_statement "{\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }" { (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar9 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar9 + 1" (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) )))) = (binary_expression "iVar9 + 1" identifier + number_literal)) ;) }))) })) })) }) (else_clause "else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }" else (compound_statement "{\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }" { (if_statement "if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }" if (parenthesized_expression "(param_4 < iVar16)" ( (binary_expression "param_4 < iVar16" identifier < identifier) )) (compound_statement "{\n      iVar16 = param_4;\n    }" { (expression_statement "iVar16 = param_4;" (assignment_expression "iVar16 = param_4" identifier = identifier) ;) })) (expression_statement "iVar2 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar2 = *(int *)(pcVar23 + 0x722f0)" identifier = (pointer_expression "*(int *)(pcVar23 + 0x722f0)" * (cast_expression "(int *)(pcVar23 + 0x722f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x722f0)" ( (binary_expression "pcVar23 + 0x722f0" identifier + number_literal) ))))) ;) (expression_statement "iVar18 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar18 = *(int *)(pcVar23 + 0x722f0)" identifier = (pointer_expression "*(int *)(pcVar23 + 0x722f0)" * (cast_expression "(int *)(pcVar23 + 0x722f0)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(pcVar23 + 0x722f0)" ( (binary_expression "pcVar23 + 0x722f0" identifier + number_literal) ))))) ;) (for_statement "for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }" for ( ; (binary_expression "0 < iVar16" number_literal < identifier) ; (assignment_expression "iVar16 = iVar16 + -1" identifier = (binary_expression "iVar16 + -1" identifier + number_literal)) ) (compound_statement "{\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }" { (expression_statement "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);" (assignment_expression "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11)" identifier = (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11)" ( (type_descriptor "undefined2 *" type_identifier (abstract_pointer_declarator "*" *)) ) (call_expression "delpos234(*(undefined4 *)(iVar20 + 8),iVar11)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),iVar11)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier ))))) ;) (expression_statement "iVar9 = iVar11;" (assignment_expression "iVar9 = iVar11" identifier = identifier) ;) (if_statement "if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" if (parenthesized_expression "(pcVar10 == (code *)0x0)" ( (binary_expression "pcVar10 == (code *)0x0" identifier == (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (compound_statement "{\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" { (expression_statement "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));" (call_expression "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (parenthesized_expression "(*(code *)(iVar2 + -0x6c2c))" ( (pointer_expression "*(code *)(iVar2 + -0x6c2c)" * (cast_expression "(code *)(iVar2 + -0x6c2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x6c2c)" ( (binary_expression "iVar2 + -0x6c2c" identifier + number_literal) )))) )) (argument_list "(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar20 + 300)" * (cast_expression "(undefined4 *)(iVar20 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;" if (parenthesized_expression "(0 < *(int *)(iVar20 + 300))" ( (binary_expression "0 < *(int *)(iVar20 + 300)" number_literal < (pointer_expression "*(int *)(iVar20 + 300)" * (cast_expression "(int *)(iVar20 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) ))))) )) (goto_statement "goto LAB_0004b730;" goto statement_identifier ;)) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (labeled_statement "LAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);" statement_identifier : (expression_statement "iVar5 = *(int *)(iVar20 + 0xe48);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe48)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe48)" * (cast_expression "(int *)(iVar20 + 0xe48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe48)" ( (binary_expression "iVar20 + 0xe48" identifier + number_literal) ))))) ;)) }) (else_clause "else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" else (compound_statement "{\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" { (if_statement "if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }" if (parenthesized_expression "(0 < *(int *)(iVar20 + 0x130))" ( (binary_expression "0 < *(int *)(iVar20 + 0x130)" number_literal < (pointer_expression "*(int *)(iVar20 + 0x130)" * (cast_expression "(int *)(iVar20 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x130)" ( (binary_expression "iVar20 + 0x130" identifier + number_literal) ))))) )) (compound_statement "{\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }" { (expression_statement "iVar5 = count234(*(undefined4 *)(iVar20 + 4));" (assignment_expression "iVar5 = count234(*(undefined4 *)(iVar20 + 4))" identifier = (call_expression "count234(*(undefined4 *)(iVar20 + 4))" identifier (argument_list "(*(undefined4 *)(iVar20 + 4))" ( (pointer_expression "*(undefined4 *)(iVar20 + 4)" * (cast_expression "(undefined4 *)(iVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) )))) ;) (if_statement "if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }" if (parenthesized_expression "(*(int *)(iVar20 + 0x130) == iVar5)" ( (binary_expression "*(int *)(iVar20 + 0x130) == iVar5" (pointer_expression "*(int *)(iVar20 + 0x130)" * (cast_expression "(int *)(iVar20 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x130)" ( (binary_expression "iVar20 + 0x130" identifier + number_literal) )))) == identifier) )) (compound_statement "{\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }" { (expression_statement "uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);" (assignment_expression "uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0)" identifier = (call_expression "delpos234(*(undefined4 *)(iVar20 + 4),0)" identifier (argument_list "(*(undefined4 *)(iVar20 + 4),0)" ( (pointer_expression "*(undefined4 *)(iVar20 + 4)" * (cast_expression "(undefined4 *)(iVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) )))) , number_literal )))) ;) (expression_statement "safefree(uVar3);" (call_expression "safefree(uVar3)" identifier (argument_list "(uVar3)" ( identifier ))) ;) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" identifier = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }) (else_clause "else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }" else (compound_statement "{\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }" { (expression_statement "*(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;" (assignment_expression "*(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) = (binary_expression "*(int *)(iVar20 + 0x14) + 1" (pointer_expression "*(int *)(iVar20 + 0x14)" * (cast_expression "(int *)(iVar20 + 0x14)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x14)" ( (binary_expression "iVar20 + 0x14" identifier + number_literal) )))) + number_literal)) ;) }))) (expression_statement "uVar15 = *(undefined4 *)(iVar20 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(iVar20 + 4)" identifier = (pointer_expression "*(undefined4 *)(iVar20 + 4)" * (cast_expression "(undefined4 *)(iVar20 + 4)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 4)" ( (binary_expression "iVar20 + 4" identifier + number_literal) ))))) ;) (expression_statement "uVar3 = FUN_0004b15c(puVar4);" (assignment_expression "uVar3 = FUN_0004b15c(puVar4)" identifier = (call_expression "FUN_0004b15c(puVar4)" identifier (argument_list "(puVar4)" ( identifier )))) ;) (expression_statement "addpos234(uVar15,uVar3,iVar5);" (call_expression "addpos234(uVar15,uVar3,iVar5)" identifier (argument_list "(uVar15,uVar3,iVar5)" ( identifier , identifier , identifier ))) ;) (expression_statement "iVar5 = *(int *)(iVar20 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0x10)" identifier = (pointer_expression "*(int *)(iVar20 + 0x10)" * (cast_expression "(int *)(iVar20 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) ))))) ;) (if_statement "if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }" if (parenthesized_expression "((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0))" ( (binary_expression "(-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)" (parenthesized_expression "(-*(int *)(iVar20 + 0x130) < iVar5)" ( (binary_expression "-*(int *)(iVar20 + 0x130) < iVar5" (unary_expression "-*(int *)(iVar20 + 0x130)" - (pointer_expression "*(int *)(iVar20 + 0x130)" * (cast_expression "(int *)(iVar20 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x130)" ( (binary_expression "iVar20 + 0x130" identifier + number_literal) ))))) < identifier) )) && (parenthesized_expression "(iVar5 < 0)" ( (binary_expression "iVar5 < 0" identifier < number_literal) ))) )) (compound_statement "{\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }" { (expression_statement "*(int *)(iVar20 + 0x10) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0x10) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0x10)" * (cast_expression "(int *)(iVar20 + 0x10)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x10)" ( (binary_expression "iVar20 + 0x10" identifier + number_literal) )))) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) })) })) (expression_statement "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));" (call_expression "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (parenthesized_expression "(*(code *)(iVar2 + -0x6c2c))" ( (pointer_expression "*(code *)(iVar2 + -0x6c2c)" * (cast_expression "(code *)(iVar2 + -0x6c2c)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar2 + -0x6c2c)" ( (binary_expression "iVar2 + -0x6c2c" identifier + number_literal) )))) )) (argument_list "(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" ( identifier , identifier , (pointer_expression "*(undefined4 *)(iVar20 + 300)" * (cast_expression "(undefined4 *)(iVar20 + 300)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) )))) ))) ;) (if_statement "if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }" if (parenthesized_expression "(*(int *)(iVar20 + 300) < 1)" ( (binary_expression "*(int *)(iVar20 + 300) < 1" (pointer_expression "*(int *)(iVar20 + 300)" * (cast_expression "(int *)(iVar20 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) )))) < number_literal) )) (compound_statement "{\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }" { (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (labeled_statement "LAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);" statement_identifier : (expression_statement "iVar9 = -*(int *)(iVar20 + 0x130);" (assignment_expression "iVar9 = -*(int *)(iVar20 + 0x130)" identifier = (unary_expression "-*(int *)(iVar20 + 0x130)" - (pointer_expression "*(int *)(iVar20 + 0x130)" * (cast_expression "(int *)(iVar20 + 0x130)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0x130)" ( (binary_expression "iVar20 + 0x130" identifier + number_literal) )))))) ;)) (goto_statement "goto LAB_0004b5f8;" goto statement_identifier ;) })) (labeled_statement "LAB_0004b730:\n        iVar5 = 0;" statement_identifier : (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" identifier = number_literal) ;)) (do_statement "do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));" do (compound_statement "{\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        }" { (expression_statement "(*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);" (call_expression "(*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54)" (parenthesized_expression "(*(code *)(iVar18 + -0x76f0))" ( (pointer_expression "*(code *)(iVar18 + -0x76f0)" * (cast_expression "(code *)(iVar18 + -0x76f0)" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar18 + -0x76f0)" ( (binary_expression "iVar18 + -0x76f0" identifier + number_literal) )))) )) (argument_list "(puVar4,iVar5,iVar20 + 0x54)" ( identifier , identifier , (binary_expression "iVar20 + 0x54" identifier + number_literal) ))) ;) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" identifier = (binary_expression "iVar5 + 1" identifier + number_literal)) ;) }) while (parenthesized_expression "(iVar5 < *(int *)(iVar20 + 300))" ( (binary_expression "iVar5 < *(int *)(iVar20 + 300)" identifier < (pointer_expression "*(int *)(iVar20 + 300)" * (cast_expression "(int *)(iVar20 + 300)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 300)" ( (binary_expression "iVar20 + 300" identifier + number_literal) ))))) )) ;) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" * identifier) = number_literal) ;) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" identifier (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" ( (pointer_expression "*(undefined4 *)(iVar20 + 8)" * (cast_expression "(undefined4 *)(iVar20 + 8)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 8)" ( (binary_expression "iVar20 + 8" identifier + number_literal) )))) , identifier , identifier ))) ;) (if_statement "if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;" if (parenthesized_expression "(pcVar10 != (code *)0x0)" ( (binary_expression "pcVar10 != (code *)0x0" identifier != (cast_expression "(code *)0x0" ( (type_descriptor "code *" type_identifier (abstract_pointer_declarator "*" *)) ) number_literal)) )) (goto_statement "goto LAB_0004b5f0;" goto statement_identifier ;)) (expression_statement "iVar5 = *(int *)(iVar20 + 0xe48);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe48)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe48)" * (cast_expression "(int *)(iVar20 + 0xe48)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe48)" ( (binary_expression "iVar20 + 0xe48" identifier + number_literal) ))))) ;) }))) (if_statement "if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }" if (parenthesized_expression "(iVar5 != 0)" ( (binary_expression "iVar5 != 0" identifier != number_literal) )) (compound_statement "{\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }" { (expression_statement "iVar5 = *(int *)(iVar20 + 0xe54);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe54)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) ))))) ;) (if_statement "if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }" if (parenthesized_expression "((iVar9 <= iVar5) && (iVar5 <= iVar13))" ( (binary_expression "(iVar9 <= iVar5) && (iVar5 <= iVar13)" (parenthesized_expression "(iVar9 <= iVar5)" ( (binary_expression "iVar9 <= iVar5" identifier <= identifier) )) && (parenthesized_expression "(iVar5 <= iVar13)" ( (binary_expression "iVar5 <= iVar13" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }" { (if_statement "if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }" if (parenthesized_expression "(iVar5 + -1 < iVar9)" ( (binary_expression "iVar5 + -1 < iVar9" (binary_expression "iVar5 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe54) = iVar9;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar9" (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe58)" * (cast_expression "(undefined4 *)(iVar20 + 0xe58)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe58)" ( (binary_expression "iVar20 + 0xe58" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe54) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0xe54)" * (cast_expression "(int *)(iVar20 + 0xe54)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe54)" ( (binary_expression "iVar20 + 0xe54" identifier + number_literal) )))) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar5 = *(int *)(iVar20 + 0xe5c);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe5c)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) ))))) ;) (if_statement "if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }" if (parenthesized_expression "((iVar9 <= iVar5) && (iVar5 <= iVar13))" ( (binary_expression "(iVar9 <= iVar5) && (iVar5 <= iVar13)" (parenthesized_expression "(iVar9 <= iVar5)" ( (binary_expression "iVar9 <= iVar5" identifier <= identifier) )) && (parenthesized_expression "(iVar5 <= iVar13)" ( (binary_expression "iVar5 <= iVar13" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }" { (if_statement "if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }" if (parenthesized_expression "(iVar5 + -1 < iVar9)" ( (binary_expression "iVar5 + -1 < iVar9" (binary_expression "iVar5 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar9;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar9" (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe60)" * (cast_expression "(undefined4 *)(iVar20 + 0xe60)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe60)" ( (binary_expression "iVar20 + 0xe60" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0xe5c)" * (cast_expression "(int *)(iVar20 + 0xe5c)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe5c)" ( (binary_expression "iVar20 + 0xe5c" identifier + number_literal) )))) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }))) })) (expression_statement "iVar5 = *(int *)(iVar20 + 0xe64);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe64)" identifier = (pointer_expression "*(int *)(iVar20 + 0xe64)" * (cast_expression "(int *)(iVar20 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe64)" ( (binary_expression "iVar20 + 0xe64" identifier + number_literal) ))))) ;) (if_statement "if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }" if (parenthesized_expression "((iVar9 <= iVar5) && (iVar5 <= iVar13))" ( (binary_expression "(iVar9 <= iVar5) && (iVar5 <= iVar13)" (parenthesized_expression "(iVar9 <= iVar5)" ( (binary_expression "iVar9 <= iVar5" identifier <= identifier) )) && (parenthesized_expression "(iVar5 <= iVar13)" ( (binary_expression "iVar5 <= iVar13" identifier <= identifier) ))) )) (compound_statement "{\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }" { (if_statement "if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }" if (parenthesized_expression "(iVar5 + -1 < iVar9)" ( (binary_expression "iVar5 + -1 < iVar9" (binary_expression "iVar5 + -1" identifier + number_literal) < identifier) )) (compound_statement "{\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe64) = iVar9;" (assignment_expression "*(int *)(iVar20 + 0xe64) = iVar9" (pointer_expression "*(int *)(iVar20 + 0xe64)" * (cast_expression "(int *)(iVar20 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe64)" ( (binary_expression "iVar20 + 0xe64" identifier + number_literal) )))) = identifier) ;) (expression_statement "*(undefined4 *)(iVar20 + 0xe68) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe68) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe68)" * (cast_expression "(undefined4 *)(iVar20 + 0xe68)" ( (type_descriptor "undefined4 *" type_identifier (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe68)" ( (binary_expression "iVar20 + 0xe68" identifier + number_literal) )))) = number_literal) ;) }) (else_clause "else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }" else (compound_statement "{\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }" { (expression_statement "*(int *)(iVar20 + 0xe64) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0xe64) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0xe64)" * (cast_expression "(int *)(iVar20 + 0xe64)" ( (type_descriptor "int *" primitive_type (abstract_pointer_declarator "*" *)) ) (parenthesized_expression "(iVar20 + 0xe64)" ( (binary_expression "iVar20 + 0xe64" identifier + number_literal) )))) = (binary_expression "iVar5 + -1" identifier + number_literal)) ;) }))) })) })) })) }))) (return_statement "return;" return ;) })))
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE (pointer_declarator * IDENT)) , (parameter_declaration TYPE IDENT) , (parameter_declaration TYPE IDENT) ))) (compound_statement { (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (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 = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( ))))) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))) <= (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )) (compound_statement { (return_statement return ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) != LIT)) ))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( IDENT ))))) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT))) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) & LIT) )) == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (break_statement break ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (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 ( ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (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 (call_expression (parenthesized_expression ( (pointer_expression * IDENT) )) (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (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 * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = (binary_expression IDENT + LIT)) , (binary_expression LIT < IDENT))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( IDENT , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) , IDENT ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;)) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) < LIT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) - (cast_expression ( (type_descriptor TYPE) ) IDENT)) )))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) ))) != IDENT) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT))) ;) }) (else_clause else (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) + LIT) , (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) , IDENT ))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;)) }) (else_clause else (compound_statement { (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , (pointer_expression & IDENT) ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT - IDENT) )))) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) + IDENT) )))) , (binary_expression IDENT != LIT)) ))) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (binary_expression IDENT - LIT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression IDENT + LIT) ))) ;) (return_statement return ;) })) (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)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + IDENT) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (char_literal ' character '))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )))) = LIT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) LIT)) ;) })) }))) })) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator * (abstract_pointer_declarator *)))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (argument_list ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) , LIT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (return_statement return ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) )))) = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT)) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (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 ( ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (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 * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT | LIT) )) & LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) }) while (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT & LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < IDENT) )) (compound_statement { (do_statement do (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression (parenthesized_expression ( (binary_expression IDENT | LIT) )) & LIT) ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) >> LIT)) ;) }) while (parenthesized_expression ( (binary_expression LIT < IDENT) )) ;) })) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , (binary_expression IDENT & LIT) ))) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression & IDENT) , 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) , 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) , IDENT , (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (pointer_expression * (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) )) (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 { (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 (parenthesized_expression ( (binary_expression IDENT - 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)) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (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) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (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 , (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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , 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 ( (binary_expression IDENT <= IDENT) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < (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 (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 IDENT < (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 (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)) ;) }))) })) })) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;)) }) (else_clause else (compound_statement { (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 = (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 IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression 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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , IDENT , IDENT ))) ;) (labeled_statement 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) )))))) ;)) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = LIT) ;)) (do_statement do (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 , (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 (pointer_expression * IDENT) = LIT) ;) (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) , 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }))) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (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_0004aa58(int param_1,code *param_2,undefined4 param_3,int param_4)\n\n{\n  code *pcVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined2 *puVar4;\n  int iVar5;\n  code *pcVar6;\n  code **ppcVar7;\n  uint uVar8;\n  int iVar9;\n  code *pcVar10;\n  int iVar11;\n  code **ppcVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  int iVar16;\n  code **ppcVar17;\n  int iVar18;\n  undefined1 *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code **ppcVar24;\n  undefined4 uStack_110;\n  int iStack_10c;\n  undefined4 uStack_108;\n  int iStack_104;\n  code *pcStack_100;\n  int iStack_fc;\n  int iStack_f8;\n  undefined4 *puStack_f4;\n  code **ppcStack_f0;\n  code *pcStack_ec;\n  code *pcStack_d8;\n  code **ppcStack_d0;\n  code **ppcStack_cc;\n  code **ppcStack_c8;\n  code **ppcStack_c4;\n  code **ppcStack_c0;\n  code *pcStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  code *pcStack_b0;\n  code *pcStack_ac;\n  code *pcStack_a8;\n  undefined4 *puStack_a4;\n  code **ppcStack_a0;\n  undefined1 *puStack_9c;\n  undefined1 *puStack_98;\n  undefined1 uStack_6d;\n  code *pcStack_6c;\n  undefined1 auStack_68 [4];\n  int iStack_64;\n  code *pcStack_60;\n  code *pcStack_5c;\n  int iStack_58;\n  undefined4 *puStack_54;\n  code **ppcStack_50;\n  undefined4 local_24;\n  code *local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000be114;\n  pcVar10 = (code *)(param_1 + 0xf8);\n  ppcVar17 = &local_20;\n  puVar14 = &local_24;\n  while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  ppcVar7 = ppcVar17;\n  puVar21 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_64 = **(int **)(puVar21 + 0x735a4);\n  pcStack_60 = pcVar1;\n  pcStack_5c = pcVar10;\n  iStack_58 = param_1;\n  puStack_54 = puVar14;\n  ppcStack_50 = ppcVar17;\n  if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }\n  if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {\n    return;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x73244);\n  (*pcVar22)();\n  pcStack_d8 = pcVar22 + 0x7a4d4;\n  iStack_b4 = **(int **)(pcVar22 + 0x73418);\n  puVar19 = *(undefined4 **)(param_2 + 0x14);\n  uStack_b8 = 0;\n  iVar11 = *(int *)(param_2 + 4);\n  ppcStack_c4 = *(code ***)(pcVar6 + 4);\n  pcVar22 = pcVar6;\n  ppcStack_d0 = ppcVar7;\n  pcStack_b0 = pcVar1;\n  pcStack_ac = pcVar10;\n  pcStack_a8 = pcVar23;\n  puStack_a4 = puVar14;\n  ppcStack_a0 = ppcVar17;\n  puStack_9c = unaff_s5;\n  puStack_98 = unaff_s6;\n  FUN_00048168();\n  ppcStack_c8 = (code **)0x0;\n  ppcStack_cc = (code **)0x0;\n  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);\n  ppcVar7 = (code **)0x0;\n  ppcVar24 = (code **)0x0;\n  ppcVar12 = ppcStack_cc;\n  while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }\n  if ((int)ppcVar7 < 1) {\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }\n  else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }\n  if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcStack_d8 + -0x741c);\n  pcVar1 = FUN_0004b15c;\n  (*pcVar23)();\n  pcVar10 = pcVar23 + 0x7a074;\n  iStack_104 = **(int **)(pcVar23 + 0x72fb8);\n  uStack_110 = 0;\n  iStack_10c = 0;\n  uStack_108 = 0;\n  uVar8 = *(uint *)(pcVar22 + 4);\n  pcStack_100 = pcVar6;\n  iStack_fc = iVar11;\n  iStack_f8 = iVar13;\n  puStack_f4 = puVar14;\n  ppcStack_f0 = ppcVar17;\n  pcStack_ec = pcVar1;\n  if (0x7f < (int)uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  uVar8 = (uint)*(ushort *)pcVar22;\n  if (0x7f < uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);\n  iVar13 = 1;\n  iVar11 = iStack_10c;\n  saferealloc(uStack_110);\n  if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcVar23 + 0x72c58);\n  iVar20 = iStack_104;\n  (*pcVar23)();\n  if (iVar11 == 0) {\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }\n  else {\n    pcVar10 = (code *)0x0;\n  }\n  iVar16 = (iVar13 - iVar11) + 1;\n  if (param_4 < 0) {\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }\n  else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" (primitive_type "void") (function_declarator "FUN_0004aa58(int param_1,code *param_2,undefined4 param_3,int param_4)" (identifier "FUN_0004aa58") (parameter_list "(int param_1,code *param_2,undefined4 param_3,int param_4)" (( "(") (parameter_declaration "int param_1" (primitive_type "int") (identifier "param_1")) (, ",") (parameter_declaration "code *param_2" (type_identifier "code") (pointer_declarator "*param_2" (* "*") (identifier "param_2"))) (, ",") (parameter_declaration "undefined4 param_3" (type_identifier "undefined4") (identifier "param_3")) (, ",") (parameter_declaration "int param_4" (primitive_type "int") (identifier "param_4")) () ")"))) (compound_statement "{\n  code *pcVar1;\n  int iVar2;\n  undefined4 uVar3;\n  undefined2 *puVar4;\n  int iVar5;\n  code *pcVar6;\n  code **ppcVar7;\n  uint uVar8;\n  int iVar9;\n  code *pcVar10;\n  int iVar11;\n  code **ppcVar12;\n  int iVar13;\n  undefined4 *puVar14;\n  undefined4 uVar15;\n  int iVar16;\n  code **ppcVar17;\n  int iVar18;\n  undefined1 *unaff_s5;\n  undefined1 *unaff_s6;\n  undefined4 *puVar19;\n  int iVar20;\n  undefined *puVar21;\n  code *pcVar22;\n  code *pcVar23;\n  code **ppcVar24;\n  undefined4 uStack_110;\n  int iStack_10c;\n  undefined4 uStack_108;\n  int iStack_104;\n  code *pcStack_100;\n  int iStack_fc;\n  int iStack_f8;\n  undefined4 *puStack_f4;\n  code **ppcStack_f0;\n  code *pcStack_ec;\n  code *pcStack_d8;\n  code **ppcStack_d0;\n  code **ppcStack_cc;\n  code **ppcStack_c8;\n  code **ppcStack_c4;\n  code **ppcStack_c0;\n  code *pcStack_bc;\n  undefined4 uStack_b8;\n  int iStack_b4;\n  code *pcStack_b0;\n  code *pcStack_ac;\n  code *pcStack_a8;\n  undefined4 *puStack_a4;\n  code **ppcStack_a0;\n  undefined1 *puStack_9c;\n  undefined1 *puStack_98;\n  undefined1 uStack_6d;\n  code *pcStack_6c;\n  undefined1 auStack_68 [4];\n  int iStack_64;\n  code *pcStack_60;\n  code *pcStack_5c;\n  int iStack_58;\n  undefined4 *puStack_54;\n  code **ppcStack_50;\n  undefined4 local_24;\n  code *local_20;\n  int local_1c;\n  \n  local_1c = *(int *)PTR___stack_chk_guard_000be114;\n  pcVar10 = (code *)(param_1 + 0xf8);\n  ppcVar17 = &local_20;\n  puVar14 = &local_24;\n  while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }\n  if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }\n  ppcVar7 = ppcVar17;\n  puVar21 = PTR___stack_chk_fail_000bddb4;\n  (*(code *)PTR___stack_chk_fail_000bddb4)();\n  iStack_64 = **(int **)(puVar21 + 0x735a4);\n  pcStack_60 = pcVar1;\n  pcStack_5c = pcVar10;\n  iStack_58 = param_1;\n  puStack_54 = puVar14;\n  ppcStack_50 = ppcVar17;\n  if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }\n  if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {\n    return;\n  }\n  pcVar22 = *(code **)(puVar21 + 0x73244);\n  (*pcVar22)();\n  pcStack_d8 = pcVar22 + 0x7a4d4;\n  iStack_b4 = **(int **)(pcVar22 + 0x73418);\n  puVar19 = *(undefined4 **)(param_2 + 0x14);\n  uStack_b8 = 0;\n  iVar11 = *(int *)(param_2 + 4);\n  ppcStack_c4 = *(code ***)(pcVar6 + 4);\n  pcVar22 = pcVar6;\n  ppcStack_d0 = ppcVar7;\n  pcStack_b0 = pcVar1;\n  pcStack_ac = pcVar10;\n  pcStack_a8 = pcVar23;\n  puStack_a4 = puVar14;\n  ppcStack_a0 = ppcVar17;\n  puStack_9c = unaff_s5;\n  puStack_98 = unaff_s6;\n  FUN_00048168();\n  ppcStack_c8 = (code **)0x0;\n  ppcStack_cc = (code **)0x0;\n  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);\n  ppcVar7 = (code **)0x0;\n  ppcVar24 = (code **)0x0;\n  ppcVar12 = ppcStack_cc;\n  while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }\n  if ((int)ppcVar7 < 1) {\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }\n  else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }\n  if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcStack_d8 + -0x741c);\n  pcVar1 = FUN_0004b15c;\n  (*pcVar23)();\n  pcVar10 = pcVar23 + 0x7a074;\n  iStack_104 = **(int **)(pcVar23 + 0x72fb8);\n  uStack_110 = 0;\n  iStack_10c = 0;\n  uStack_108 = 0;\n  uVar8 = *(uint *)(pcVar22 + 4);\n  pcStack_100 = pcVar6;\n  iStack_fc = iVar11;\n  iStack_f8 = iVar13;\n  puStack_f4 = puVar14;\n  ppcStack_f0 = ppcVar17;\n  pcStack_ec = pcVar1;\n  if (0x7f < (int)uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  uVar8 = (uint)*(ushort *)pcVar22;\n  if (0x7f < uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }\n  FUN_00048168(&uStack_110,uVar8 & 0xff);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);\n  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);\n  iVar13 = 1;\n  iVar11 = iStack_10c;\n  saferealloc(uStack_110);\n  if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {\n    return;\n  }\n  pcVar23 = *(code **)(pcVar23 + 0x72c58);\n  iVar20 = iStack_104;\n  (*pcVar23)();\n  if (iVar11 == 0) {\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }\n  else {\n    pcVar10 = (code *)0x0;\n  }\n  iVar16 = (iVar13 - iVar11) + 1;\n  if (param_4 < 0) {\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }\n  else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }\n  return;\n}" ({ "{") (declaration "code *pcVar1;" (type_identifier "code") (pointer_declarator "*pcVar1" (* "*") (identifier "pcVar1")) (; ";")) (declaration "int iVar2;" (primitive_type "int") (identifier "iVar2") (; ";")) (declaration "undefined4 uVar3;" (type_identifier "undefined4") (identifier "uVar3") (; ";")) (declaration "undefined2 *puVar4;" (type_identifier "undefined2") (pointer_declarator "*puVar4" (* "*") (identifier "puVar4")) (; ";")) (declaration "int iVar5;" (primitive_type "int") (identifier "iVar5") (; ";")) (declaration "code *pcVar6;" (type_identifier "code") (pointer_declarator "*pcVar6" (* "*") (identifier "pcVar6")) (; ";")) (declaration "code **ppcVar7;" (type_identifier "code") (pointer_declarator "**ppcVar7" (* "*") (pointer_declarator "*ppcVar7" (* "*") (identifier "ppcVar7"))) (; ";")) (declaration "uint uVar8;" (type_identifier "uint") (identifier "uVar8") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "code *pcVar10;" (type_identifier "code") (pointer_declarator "*pcVar10" (* "*") (identifier "pcVar10")) (; ";")) (declaration "int iVar11;" (primitive_type "int") (identifier "iVar11") (; ";")) (declaration "code **ppcVar12;" (type_identifier "code") (pointer_declarator "**ppcVar12" (* "*") (pointer_declarator "*ppcVar12" (* "*") (identifier "ppcVar12"))) (; ";")) (declaration "int iVar13;" (primitive_type "int") (identifier "iVar13") (; ";")) (declaration "undefined4 *puVar14;" (type_identifier "undefined4") (pointer_declarator "*puVar14" (* "*") (identifier "puVar14")) (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "int iVar16;" (primitive_type "int") (identifier "iVar16") (; ";")) (declaration "code **ppcVar17;" (type_identifier "code") (pointer_declarator "**ppcVar17" (* "*") (pointer_declarator "*ppcVar17" (* "*") (identifier "ppcVar17"))) (; ";")) (declaration "int iVar18;" (primitive_type "int") (identifier "iVar18") (; ";")) (declaration "undefined1 *unaff_s5;" (type_identifier "undefined1") (pointer_declarator "*unaff_s5" (* "*") (identifier "unaff_s5")) (; ";")) (declaration "undefined1 *unaff_s6;" (type_identifier "undefined1") (pointer_declarator "*unaff_s6" (* "*") (identifier "unaff_s6")) (; ";")) (declaration "undefined4 *puVar19;" (type_identifier "undefined4") (pointer_declarator "*puVar19" (* "*") (identifier "puVar19")) (; ";")) (declaration "int iVar20;" (primitive_type "int") (identifier "iVar20") (; ";")) (declaration "undefined *puVar21;" (type_identifier "undefined") (pointer_declarator "*puVar21" (* "*") (identifier "puVar21")) (; ";")) (declaration "code *pcVar22;" (type_identifier "code") (pointer_declarator "*pcVar22" (* "*") (identifier "pcVar22")) (; ";")) (declaration "code *pcVar23;" (type_identifier "code") (pointer_declarator "*pcVar23" (* "*") (identifier "pcVar23")) (; ";")) (declaration "code **ppcVar24;" (type_identifier "code") (pointer_declarator "**ppcVar24" (* "*") (pointer_declarator "*ppcVar24" (* "*") (identifier "ppcVar24"))) (; ";")) (declaration "undefined4 uStack_110;" (type_identifier "undefined4") (identifier "uStack_110") (; ";")) (declaration "int iStack_10c;" (primitive_type "int") (identifier "iStack_10c") (; ";")) (declaration "undefined4 uStack_108;" (type_identifier "undefined4") (identifier "uStack_108") (; ";")) (declaration "int iStack_104;" (primitive_type "int") (identifier "iStack_104") (; ";")) (declaration "code *pcStack_100;" (type_identifier "code") (pointer_declarator "*pcStack_100" (* "*") (identifier "pcStack_100")) (; ";")) (declaration "int iStack_fc;" (primitive_type "int") (identifier "iStack_fc") (; ";")) (declaration "int iStack_f8;" (primitive_type "int") (identifier "iStack_f8") (; ";")) (declaration "undefined4 *puStack_f4;" (type_identifier "undefined4") (pointer_declarator "*puStack_f4" (* "*") (identifier "puStack_f4")) (; ";")) (declaration "code **ppcStack_f0;" (type_identifier "code") (pointer_declarator "**ppcStack_f0" (* "*") (pointer_declarator "*ppcStack_f0" (* "*") (identifier "ppcStack_f0"))) (; ";")) (declaration "code *pcStack_ec;" (type_identifier "code") (pointer_declarator "*pcStack_ec" (* "*") (identifier "pcStack_ec")) (; ";")) (declaration "code *pcStack_d8;" (type_identifier "code") (pointer_declarator "*pcStack_d8" (* "*") (identifier "pcStack_d8")) (; ";")) (declaration "code **ppcStack_d0;" (type_identifier "code") (pointer_declarator "**ppcStack_d0" (* "*") (pointer_declarator "*ppcStack_d0" (* "*") (identifier "ppcStack_d0"))) (; ";")) (declaration "code **ppcStack_cc;" (type_identifier "code") (pointer_declarator "**ppcStack_cc" (* "*") (pointer_declarator "*ppcStack_cc" (* "*") (identifier "ppcStack_cc"))) (; ";")) (declaration "code **ppcStack_c8;" (type_identifier "code") (pointer_declarator "**ppcStack_c8" (* "*") (pointer_declarator "*ppcStack_c8" (* "*") (identifier "ppcStack_c8"))) (; ";")) (declaration "code **ppcStack_c4;" (type_identifier "code") (pointer_declarator "**ppcStack_c4" (* "*") (pointer_declarator "*ppcStack_c4" (* "*") (identifier "ppcStack_c4"))) (; ";")) (declaration "code **ppcStack_c0;" (type_identifier "code") (pointer_declarator "**ppcStack_c0" (* "*") (pointer_declarator "*ppcStack_c0" (* "*") (identifier "ppcStack_c0"))) (; ";")) (declaration "code *pcStack_bc;" (type_identifier "code") (pointer_declarator "*pcStack_bc" (* "*") (identifier "pcStack_bc")) (; ";")) (declaration "undefined4 uStack_b8;" (type_identifier "undefined4") (identifier "uStack_b8") (; ";")) (declaration "int iStack_b4;" (primitive_type "int") (identifier "iStack_b4") (; ";")) (declaration "code *pcStack_b0;" (type_identifier "code") (pointer_declarator "*pcStack_b0" (* "*") (identifier "pcStack_b0")) (; ";")) (declaration "code *pcStack_ac;" (type_identifier "code") (pointer_declarator "*pcStack_ac" (* "*") (identifier "pcStack_ac")) (; ";")) (declaration "code *pcStack_a8;" (type_identifier "code") (pointer_declarator "*pcStack_a8" (* "*") (identifier "pcStack_a8")) (; ";")) (declaration "undefined4 *puStack_a4;" (type_identifier "undefined4") (pointer_declarator "*puStack_a4" (* "*") (identifier "puStack_a4")) (; ";")) (declaration "code **ppcStack_a0;" (type_identifier "code") (pointer_declarator "**ppcStack_a0" (* "*") (pointer_declarator "*ppcStack_a0" (* "*") (identifier "ppcStack_a0"))) (; ";")) (declaration "undefined1 *puStack_9c;" (type_identifier "undefined1") (pointer_declarator "*puStack_9c" (* "*") (identifier "puStack_9c")) (; ";")) (declaration "undefined1 *puStack_98;" (type_identifier "undefined1") (pointer_declarator "*puStack_98" (* "*") (identifier "puStack_98")) (; ";")) (declaration "undefined1 uStack_6d;" (type_identifier "undefined1") (identifier "uStack_6d") (; ";")) (declaration "code *pcStack_6c;" (type_identifier "code") (pointer_declarator "*pcStack_6c" (* "*") (identifier "pcStack_6c")) (; ";")) (declaration "undefined1 auStack_68 [4];" (type_identifier "undefined1") (array_declarator "auStack_68 [4]" (identifier "auStack_68") ([ "[") (number_literal "4") (] "]")) (; ";")) (declaration "int iStack_64;" (primitive_type "int") (identifier "iStack_64") (; ";")) (declaration "code *pcStack_60;" (type_identifier "code") (pointer_declarator "*pcStack_60" (* "*") (identifier "pcStack_60")) (; ";")) (declaration "code *pcStack_5c;" (type_identifier "code") (pointer_declarator "*pcStack_5c" (* "*") (identifier "pcStack_5c")) (; ";")) (declaration "int iStack_58;" (primitive_type "int") (identifier "iStack_58") (; ";")) (declaration "undefined4 *puStack_54;" (type_identifier "undefined4") (pointer_declarator "*puStack_54" (* "*") (identifier "puStack_54")) (; ";")) (declaration "code **ppcStack_50;" (type_identifier "code") (pointer_declarator "**ppcStack_50" (* "*") (pointer_declarator "*ppcStack_50" (* "*") (identifier "ppcStack_50"))) (; ";")) (declaration "undefined4 local_24;" (type_identifier "undefined4") (identifier "local_24") (; ";")) (declaration "code *local_20;" (type_identifier "code") (pointer_declarator "*local_20" (* "*") (identifier "local_20")) (; ";")) (declaration "int local_1c;" (primitive_type "int") (identifier "local_1c") (; ";")) (expression_statement "local_1c = *(int *)PTR___stack_chk_guard_000be114;" (assignment_expression "local_1c = *(int *)PTR___stack_chk_guard_000be114" (identifier "local_1c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000be114" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000be114")))) (; ";")) (expression_statement "pcVar10 = (code *)(param_1 + 0xf8);" (assignment_expression "pcVar10 = (code *)(param_1 + 0xf8)" (identifier "pcVar10") (= "=") (cast_expression "(code *)(param_1 + 0xf8)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0xf8)" (( "(") (binary_expression "param_1 + 0xf8" (identifier "param_1") (+ "+") (number_literal "0xf8")) () ")")))) (; ";")) (expression_statement "ppcVar17 = &local_20;" (assignment_expression "ppcVar17 = &local_20" (identifier "ppcVar17") (= "=") (pointer_expression "&local_20" (& "&") (identifier "local_20"))) (; ";")) (expression_statement "puVar14 = &local_24;" (assignment_expression "puVar14 = &local_24" (identifier "puVar14") (= "=") (pointer_expression "&local_24" (& "&") (identifier "local_24"))) (; ";")) (while_statement "while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }" (while "while") (parenthesized_expression "(pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1)" (( "(") (comma_expression "pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1" (assignment_expression "pcVar23 = pcVar10" (identifier "pcVar23") (= "=") (identifier "pcVar10")) (, ",") (comma_expression "pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1" (assignment_expression "pcVar1 = (code *)bufchain_size()" (identifier "pcVar1") (= "=") (cast_expression "(code *)bufchain_size()" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bufchain_size()" (identifier "bufchain_size") (argument_list "()" (( "(") () ")"))))) (, ",") (binary_expression "5 < (int)pcVar1" (number_literal "5") (< "<") (cast_expression "(int)pcVar1" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar1"))))) () ")")) (compound_statement "{\n    bufchain_prefix(pcVar10,puVar14);\n    if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }\n    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);\n    param_2 = local_20;\n    bufchain_consume(pcVar10);\n  }" ({ "{") (expression_statement "bufchain_prefix(pcVar10,puVar14);" (call_expression "bufchain_prefix(pcVar10,puVar14)" (identifier "bufchain_prefix") (argument_list "(pcVar10,puVar14)" (( "(") (identifier "pcVar10") (, ",") (identifier "puVar14") () ")"))) (; ";")) (if_statement "if ((int)(pcVar1 + -4) <= (int)local_20) {\n      local_20 = pcVar1 + -5;\n    }" (if "if") (parenthesized_expression "((int)(pcVar1 + -4) <= (int)local_20)" (( "(") (binary_expression "(int)(pcVar1 + -4) <= (int)local_20" (cast_expression "(int)(pcVar1 + -4)" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (parenthesized_expression "(pcVar1 + -4)" (( "(") (binary_expression "pcVar1 + -4" (identifier "pcVar1") (+ "+") (number_literal "-4")) () ")"))) (<= "<=") (cast_expression "(int)local_20" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "local_20"))) () ")")) (compound_statement "{\n      local_20 = pcVar1 + -5;\n    }" ({ "{") (expression_statement "local_20 = pcVar1 + -5;" (assignment_expression "local_20 = pcVar1 + -5" (identifier "local_20") (= "=") (binary_expression "pcVar1 + -5" (identifier "pcVar1") (+ "+") (number_literal "-5"))) (; ";")) (} "}"))) (expression_statement "(*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);" (call_expression "(*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20)" (parenthesized_expression "(*(code *)PTR_printer_job_data_000bd630)" (( "(") (pointer_expression "*(code *)PTR_printer_job_data_000bd630" (* "*") (cast_expression "(code *)PTR_printer_job_data_000bd630" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR_printer_job_data_000bd630"))) () ")")) (argument_list "(*(undefined4 *)(param_1 + 0x104),local_24,local_20)" (( "(") (pointer_expression "*(undefined4 *)(param_1 + 0x104)" (* "*") (cast_expression "(undefined4 *)(param_1 + 0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_1 + 0x104)" (( "(") (binary_expression "param_1 + 0x104" (identifier "param_1") (+ "+") (number_literal "0x104")) () ")")))) (, ",") (identifier "local_24") (, ",") (identifier "local_20") () ")"))) (; ";")) (expression_statement "param_2 = local_20;" (assignment_expression "param_2 = local_20" (identifier "param_2") (= "=") (identifier "local_20")) (; ";")) (expression_statement "bufchain_consume(pcVar10);" (call_expression "bufchain_consume(pcVar10)" (identifier "bufchain_consume") (argument_list "(pcVar10)" (( "(") (identifier "pcVar10") () ")"))) (; ";")) (} "}"))) (if_statement "if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {\n    return;\n  }" (if "if") (parenthesized_expression "(local_1c == *(int *)PTR___stack_chk_guard_000be114)" (( "(") (binary_expression "local_1c == *(int *)PTR___stack_chk_guard_000be114" (identifier "local_1c") (== "==") (pointer_expression "*(int *)PTR___stack_chk_guard_000be114" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000be114" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000be114")))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "ppcVar7 = ppcVar17;" (assignment_expression "ppcVar7 = ppcVar17" (identifier "ppcVar7") (= "=") (identifier "ppcVar17")) (; ";")) (expression_statement "puVar21 = PTR___stack_chk_fail_000bddb4;" (assignment_expression "puVar21 = PTR___stack_chk_fail_000bddb4" (identifier "puVar21") (= "=") (identifier "PTR___stack_chk_fail_000bddb4")) (; ";")) (expression_statement "(*(code *)PTR___stack_chk_fail_000bddb4)();" (call_expression "(*(code *)PTR___stack_chk_fail_000bddb4)()" (parenthesized_expression "(*(code *)PTR___stack_chk_fail_000bddb4)" (( "(") (pointer_expression "*(code *)PTR___stack_chk_fail_000bddb4" (* "*") (cast_expression "(code *)PTR___stack_chk_fail_000bddb4" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_fail_000bddb4"))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "iStack_64 = **(int **)(puVar21 + 0x735a4);" (assignment_expression "iStack_64 = **(int **)(puVar21 + 0x735a4)" (identifier "iStack_64") (= "=") (pointer_expression "**(int **)(puVar21 + 0x735a4)" (* "*") (pointer_expression "*(int **)(puVar21 + 0x735a4)" (* "*") (cast_expression "(int **)(puVar21 + 0x735a4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x735a4)" (( "(") (binary_expression "puVar21 + 0x735a4" (identifier "puVar21") (+ "+") (number_literal "0x735a4")) () ")")))))) (; ";")) (expression_statement "pcStack_60 = pcVar1;" (assignment_expression "pcStack_60 = pcVar1" (identifier "pcStack_60") (= "=") (identifier "pcVar1")) (; ";")) (expression_statement "pcStack_5c = pcVar10;" (assignment_expression "pcStack_5c = pcVar10" (identifier "pcStack_5c") (= "=") (identifier "pcVar10")) (; ";")) (expression_statement "iStack_58 = param_1;" (assignment_expression "iStack_58 = param_1" (identifier "iStack_58") (= "=") (identifier "param_1")) (; ";")) (expression_statement "puStack_54 = puVar14;" (assignment_expression "puStack_54 = puVar14" (identifier "puStack_54") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "ppcStack_50 = ppcVar17;" (assignment_expression "ppcStack_50 = ppcVar17" (identifier "ppcStack_50") (= "=") (identifier "ppcVar17")) (; ";")) (if_statement "if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }" (if "if") (parenthesized_expression "((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0))" (( "(") (binary_expression "(*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)" (parenthesized_expression "(*(int *)(pcVar23 + 0xec) != 0)" (( "(") (binary_expression "*(int *)(pcVar23 + 0xec) != 0" (pointer_expression "*(int *)(pcVar23 + 0xec)" (* "*") (cast_expression "(int *)(pcVar23 + 0xec)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0xec)" (( "(") (binary_expression "pcVar23 + 0xec" (identifier "pcVar23") (+ "+") (number_literal "0xec")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (|| "||") (parenthesized_expression "(pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)" (( "(") (comma_expression "pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0" (assignment_expression "pcVar6 = pcVar23" (identifier "pcVar6") (= "=") (identifier "pcVar23")) (, ",") (binary_expression "*(int *)(pcVar23 + 0xf0) != 0" (pointer_expression "*(int *)(pcVar23 + 0xf0)" (* "*") (cast_expression "(int *)(pcVar23 + 0xf0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0xf0)" (( "(") (binary_expression "pcVar23 + 0xf0" (identifier "pcVar23") (+ "+") (number_literal "0xf0")) () ")")))) (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\n    FUN_0004aa58(pcVar23);\n    pcVar1 = pcVar23 + 0xf8;\n    unaff_s5 = auStack_68;\n    ppcVar17 = &pcStack_6c;\n    puVar14 = (undefined4 *)0x1b;\n    unaff_s6 = &uStack_6d;\n    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }\n    pcVar6 = *(code **)(pcVar23 + 0x104);\n    (**(code **)(puVar21 + 0x72ac4))();\n    *(undefined4 *)(pcVar23 + 0x104) = 0;\n    *(undefined4 *)(pcVar23 + 0xf0) = 0;\n    *(undefined4 *)(pcVar23 + 0xec) = 0;\n  }" ({ "{") (expression_statement "FUN_0004aa58(pcVar23);" (call_expression "FUN_0004aa58(pcVar23)" (identifier "FUN_0004aa58") (argument_list "(pcVar23)" (( "(") (identifier "pcVar23") () ")"))) (; ";")) (expression_statement "pcVar1 = pcVar23 + 0xf8;" (assignment_expression "pcVar1 = pcVar23 + 0xf8" (identifier "pcVar1") (= "=") (binary_expression "pcVar23 + 0xf8" (identifier "pcVar23") (+ "+") (number_literal "0xf8"))) (; ";")) (expression_statement "unaff_s5 = auStack_68;" (assignment_expression "unaff_s5 = auStack_68" (identifier "unaff_s5") (= "=") (identifier "auStack_68")) (; ";")) (expression_statement "ppcVar17 = &pcStack_6c;" (assignment_expression "ppcVar17 = &pcStack_6c" (identifier "ppcVar17") (= "=") (pointer_expression "&pcStack_6c" (& "&") (identifier "pcStack_6c"))) (; ";")) (expression_statement "puVar14 = (undefined4 *)0x1b;" (assignment_expression "puVar14 = (undefined4 *)0x1b" (identifier "puVar14") (= "=") (cast_expression "(undefined4 *)0x1b" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1b"))) (; ";")) (expression_statement "unaff_s6 = &uStack_6d;" (assignment_expression "unaff_s6 = &uStack_6d" (identifier "unaff_s6") (= "=") (pointer_expression "&uStack_6d" (& "&") (identifier "uStack_6d"))) (; ";")) (while_statement "while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }" (while "while") (parenthesized_expression "(pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10)" (( "(") (comma_expression "pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10" (assignment_expression "pcVar10 = (code *)bufchain_size(pcVar1)" (identifier "pcVar10") (= "=") (cast_expression "(code *)bufchain_size(pcVar1)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "bufchain_size(pcVar1)" (identifier "bufchain_size") (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")"))))) (, ",") (binary_expression "0 < (int)pcVar10" (number_literal "0") (< "<") (cast_expression "(int)pcVar10" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "pcVar10")))) () ")")) (compound_statement "{\n      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);\n      uStack_6d = *pcStack_6c;\n      ppcVar7 = (code **)0x1;\n      if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }\n      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);\n      param_2 = (code *)0x1;\n      bufchain_consume(pcVar1);\n    }" ({ "{") (expression_statement "bufchain_prefix(pcVar1,ppcVar17,unaff_s5);" (call_expression "bufchain_prefix(pcVar1,ppcVar17,unaff_s5)" (identifier "bufchain_prefix") (argument_list "(pcVar1,ppcVar17,unaff_s5)" (( "(") (identifier "pcVar1") (, ",") (identifier "ppcVar17") (, ",") (identifier "unaff_s5") () ")"))) (; ";")) (expression_statement "uStack_6d = *pcStack_6c;" (assignment_expression "uStack_6d = *pcStack_6c" (identifier "uStack_6d") (= "=") (pointer_expression "*pcStack_6c" (* "*") (identifier "pcStack_6c"))) (; ";")) (expression_statement "ppcVar7 = (code **)0x1;" (assignment_expression "ppcVar7 = (code **)0x1" (identifier "ppcVar7") (= "=") (cast_expression "(code **)0x1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x1"))) (; ";")) (if_statement "if (((byte)uStack_6d & 0x7f) == 0x1b) {\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }" (if "if") (parenthesized_expression "(((byte)uStack_6d & 0x7f) == 0x1b)" (( "(") (binary_expression "((byte)uStack_6d & 0x7f) == 0x1b" (parenthesized_expression "((byte)uStack_6d & 0x7f)" (( "(") (binary_expression "(byte)uStack_6d & 0x7f" (cast_expression "(byte)uStack_6d" (( "(") (type_descriptor "byte" (type_identifier "byte")) () ")") (identifier "uStack_6d")) (& "&") (number_literal "0x7f")) () ")")) (== "==") (number_literal "0x1b")) () ")")) (compound_statement "{\n        param_2 = pcVar10;\n        bufchain_consume(pcVar1);\n        break;\n      }" ({ "{") (expression_statement "param_2 = pcVar10;" (assignment_expression "param_2 = pcVar10" (identifier "param_2") (= "=") (identifier "pcVar10")) (; ";")) (expression_statement "bufchain_consume(pcVar1);" (call_expression "bufchain_consume(pcVar1)" (identifier "bufchain_consume") (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")"))) (; ";")) (break_statement "break;" (break "break") (; ";")) (} "}"))) (expression_statement "(**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);" (call_expression "(**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6)" (parenthesized_expression "(**(code **)(puVar21 + 0x72ac0))" (( "(") (pointer_expression "**(code **)(puVar21 + 0x72ac0)" (* "*") (pointer_expression "*(code **)(puVar21 + 0x72ac0)" (* "*") (cast_expression "(code **)(puVar21 + 0x72ac0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x72ac0)" (( "(") (binary_expression "puVar21 + 0x72ac0" (identifier "puVar21") (+ "+") (number_literal "0x72ac0")) () ")"))))) () ")")) (argument_list "(*(undefined4 *)(pcVar23 + 0x104),unaff_s6)" (( "(") (pointer_expression "*(undefined4 *)(pcVar23 + 0x104)" (* "*") (cast_expression "(undefined4 *)(pcVar23 + 0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x104)" (( "(") (binary_expression "pcVar23 + 0x104" (identifier "pcVar23") (+ "+") (number_literal "0x104")) () ")")))) (, ",") (identifier "unaff_s6") () ")"))) (; ";")) (expression_statement "param_2 = (code *)0x1;" (assignment_expression "param_2 = (code *)0x1" (identifier "param_2") (= "=") (cast_expression "(code *)0x1" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x1"))) (; ";")) (expression_statement "bufchain_consume(pcVar1);" (call_expression "bufchain_consume(pcVar1)" (identifier "bufchain_consume") (argument_list "(pcVar1)" (( "(") (identifier "pcVar1") () ")"))) (; ";")) (} "}"))) (expression_statement "pcVar6 = *(code **)(pcVar23 + 0x104);" (assignment_expression "pcVar6 = *(code **)(pcVar23 + 0x104)" (identifier "pcVar6") (= "=") (pointer_expression "*(code **)(pcVar23 + 0x104)" (* "*") (cast_expression "(code **)(pcVar23 + 0x104)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x104)" (( "(") (binary_expression "pcVar23 + 0x104" (identifier "pcVar23") (+ "+") (number_literal "0x104")) () ")"))))) (; ";")) (expression_statement "(**(code **)(puVar21 + 0x72ac4))();" (call_expression "(**(code **)(puVar21 + 0x72ac4))()" (parenthesized_expression "(**(code **)(puVar21 + 0x72ac4))" (( "(") (pointer_expression "**(code **)(puVar21 + 0x72ac4)" (* "*") (pointer_expression "*(code **)(puVar21 + 0x72ac4)" (* "*") (cast_expression "(code **)(puVar21 + 0x72ac4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x72ac4)" (( "(") (binary_expression "puVar21 + 0x72ac4" (identifier "puVar21") (+ "+") (number_literal "0x72ac4")) () ")"))))) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "*(undefined4 *)(pcVar23 + 0x104) = 0;" (assignment_expression "*(undefined4 *)(pcVar23 + 0x104) = 0" (pointer_expression "*(undefined4 *)(pcVar23 + 0x104)" (* "*") (cast_expression "(undefined4 *)(pcVar23 + 0x104)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x104)" (( "(") (binary_expression "pcVar23 + 0x104" (identifier "pcVar23") (+ "+") (number_literal "0x104")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(pcVar23 + 0xf0) = 0;" (assignment_expression "*(undefined4 *)(pcVar23 + 0xf0) = 0" (pointer_expression "*(undefined4 *)(pcVar23 + 0xf0)" (* "*") (cast_expression "(undefined4 *)(pcVar23 + 0xf0)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0xf0)" (( "(") (binary_expression "pcVar23 + 0xf0" (identifier "pcVar23") (+ "+") (number_literal "0xf0")) () ")")))) (= "=") (number_literal "0")) (; ";")) (expression_statement "*(undefined4 *)(pcVar23 + 0xec) = 0;" (assignment_expression "*(undefined4 *)(pcVar23 + 0xec) = 0" (pointer_expression "*(undefined4 *)(pcVar23 + 0xec)" (* "*") (cast_expression "(undefined4 *)(pcVar23 + 0xec)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0xec)" (( "(") (binary_expression "pcVar23 + 0xec" (identifier "pcVar23") (+ "+") (number_literal "0xec")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}"))) (if_statement "if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_64 == **(int **)(puVar21 + 0x735a4))" (( "(") (binary_expression "iStack_64 == **(int **)(puVar21 + 0x735a4)" (identifier "iStack_64") (== "==") (pointer_expression "**(int **)(puVar21 + 0x735a4)" (* "*") (pointer_expression "*(int **)(puVar21 + 0x735a4)" (* "*") (cast_expression "(int **)(puVar21 + 0x735a4)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x735a4)" (( "(") (binary_expression "puVar21 + 0x735a4" (identifier "puVar21") (+ "+") (number_literal "0x735a4")) () ")")))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar22 = *(code **)(puVar21 + 0x73244);" (assignment_expression "pcVar22 = *(code **)(puVar21 + 0x73244)" (identifier "pcVar22") (= "=") (pointer_expression "*(code **)(puVar21 + 0x73244)" (* "*") (cast_expression "(code **)(puVar21 + 0x73244)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(puVar21 + 0x73244)" (( "(") (binary_expression "puVar21 + 0x73244" (identifier "puVar21") (+ "+") (number_literal "0x73244")) () ")"))))) (; ";")) (expression_statement "(*pcVar22)();" (call_expression "(*pcVar22)()" (parenthesized_expression "(*pcVar22)" (( "(") (pointer_expression "*pcVar22" (* "*") (identifier "pcVar22")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcStack_d8 = pcVar22 + 0x7a4d4;" (assignment_expression "pcStack_d8 = pcVar22 + 0x7a4d4" (identifier "pcStack_d8") (= "=") (binary_expression "pcVar22 + 0x7a4d4" (identifier "pcVar22") (+ "+") (number_literal "0x7a4d4"))) (; ";")) (expression_statement "iStack_b4 = **(int **)(pcVar22 + 0x73418);" (assignment_expression "iStack_b4 = **(int **)(pcVar22 + 0x73418)" (identifier "iStack_b4") (= "=") (pointer_expression "**(int **)(pcVar22 + 0x73418)" (* "*") (pointer_expression "*(int **)(pcVar22 + 0x73418)" (* "*") (cast_expression "(int **)(pcVar22 + 0x73418)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar22 + 0x73418)" (( "(") (binary_expression "pcVar22 + 0x73418" (identifier "pcVar22") (+ "+") (number_literal "0x73418")) () ")")))))) (; ";")) (expression_statement "puVar19 = *(undefined4 **)(param_2 + 0x14);" (assignment_expression "puVar19 = *(undefined4 **)(param_2 + 0x14)" (identifier "puVar19") (= "=") (pointer_expression "*(undefined4 **)(param_2 + 0x14)" (* "*") (cast_expression "(undefined4 **)(param_2 + 0x14)" (( "(") (type_descriptor "undefined4 **" (type_identifier "undefined4") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(param_2 + 0x14)" (( "(") (binary_expression "param_2 + 0x14" (identifier "param_2") (+ "+") (number_literal "0x14")) () ")"))))) (; ";")) (expression_statement "uStack_b8 = 0;" (assignment_expression "uStack_b8 = 0" (identifier "uStack_b8") (= "=") (number_literal "0")) (; ";")) (expression_statement "iVar11 = *(int *)(param_2 + 4);" (assignment_expression "iVar11 = *(int *)(param_2 + 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(param_2 + 4)" (* "*") (cast_expression "(int *)(param_2 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(param_2 + 4)" (( "(") (binary_expression "param_2 + 4" (identifier "param_2") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "ppcStack_c4 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcStack_c4 = *(code ***)(pcVar6 + 4)" (identifier "ppcStack_c4") (= "=") (pointer_expression "*(code ***)(pcVar6 + 4)" (* "*") (cast_expression "(code ***)(pcVar6 + 4)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" (identifier "pcVar22") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "ppcStack_d0 = ppcVar7;" (assignment_expression "ppcStack_d0 = ppcVar7" (identifier "ppcStack_d0") (= "=") (identifier "ppcVar7")) (; ";")) (expression_statement "pcStack_b0 = pcVar1;" (assignment_expression "pcStack_b0 = pcVar1" (identifier "pcStack_b0") (= "=") (identifier "pcVar1")) (; ";")) (expression_statement "pcStack_ac = pcVar10;" (assignment_expression "pcStack_ac = pcVar10" (identifier "pcStack_ac") (= "=") (identifier "pcVar10")) (; ";")) (expression_statement "pcStack_a8 = pcVar23;" (assignment_expression "pcStack_a8 = pcVar23" (identifier "pcStack_a8") (= "=") (identifier "pcVar23")) (; ";")) (expression_statement "puStack_a4 = puVar14;" (assignment_expression "puStack_a4 = puVar14" (identifier "puStack_a4") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "ppcStack_a0 = ppcVar17;" (assignment_expression "ppcStack_a0 = ppcVar17" (identifier "ppcStack_a0") (= "=") (identifier "ppcVar17")) (; ";")) (expression_statement "puStack_9c = unaff_s5;" (assignment_expression "puStack_9c = unaff_s5" (identifier "puStack_9c") (= "=") (identifier "unaff_s5")) (; ";")) (expression_statement "puStack_98 = unaff_s6;" (assignment_expression "puStack_98 = unaff_s6" (identifier "puStack_98") (= "=") (identifier "unaff_s6")) (; ";")) (expression_statement "FUN_00048168();" (call_expression "FUN_00048168()" (identifier "FUN_00048168") (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" (identifier "ppcStack_c8") (= "=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcStack_cc = (code **)0x0;" (assignment_expression "ppcStack_cc = (code **)0x0" (identifier "ppcStack_cc") (= "=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);" (assignment_expression "pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" (identifier "pcStack_bc") (= "=") (cast_expression "(code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98" (pointer_expression "*(int *)(pcStack_d8 + -0x7bb0)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7bb0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7bb0)" (( "(") (binary_expression "pcStack_d8 + -0x7bb0" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7bb0")) () ")")))) (+ "+") (number_literal "-0x7e98")) () ")")))) (; ";")) (expression_statement "ppcVar7 = (code **)0x0;" (assignment_expression "ppcVar7 = (code **)0x0" (identifier "ppcVar7") (= "=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcVar24 = (code **)0x0;" (assignment_expression "ppcVar24 = (code **)0x0" (identifier "ppcVar24") (= "=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcVar12 = ppcStack_cc;" (assignment_expression "ppcVar12 = ppcStack_cc" (identifier "ppcVar12") (= "=") (identifier "ppcStack_cc")) (; ";")) (while_statement "while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }" (while "while") (parenthesized_expression "(ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11)" (( "(") (comma_expression "ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11" (assignment_expression "ppcStack_cc = ppcVar12" (identifier "ppcStack_cc") (= "=") (identifier "ppcVar12")) (, ",") (comma_expression "iVar13 = iVar11 + -1, 0 < iVar11" (assignment_expression "iVar13 = iVar11 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar11 + -1" (identifier "iVar11") (+ "+") (number_literal "-1"))) (, ",") (binary_expression "0 < iVar11" (number_literal "0") (< "<") (identifier "iVar11")))) () ")")) (compound_statement "{\n    ppcVar17 = *(code ***)(pcVar6 + 4);\n    pcVar22 = pcVar6;\n    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);\n    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);\n    puVar14 = puVar19 + 3;\n    iVar11 = iVar13;\n    if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }\n  }" ({ "{") (expression_statement "ppcVar17 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcVar17 = *(code ***)(pcVar6 + 4)" (identifier "ppcVar17") (= "=") (pointer_expression "*(code ***)(pcVar6 + 4)" (* "*") (cast_expression "(code ***)(pcVar6 + 4)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" (identifier "pcVar22") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "(*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);" (call_expression "(*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8)" (parenthesized_expression "(*(code *)ppcStack_d0)" (( "(") (pointer_expression "*(code *)ppcStack_d0" (* "*") (cast_expression "(code *)ppcStack_d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppcStack_d0"))) () ")")) (argument_list "(pcVar6,puVar19,&uStack_b8)" (( "(") (identifier "pcVar6") (, ",") (identifier "puVar19") (, ",") (pointer_expression "&uStack_b8" (& "&") (identifier "uStack_b8")) () ")"))) (; ";")) (expression_statement "ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);" (assignment_expression "ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17)" (identifier "ppcVar12") (= "=") (cast_expression "(code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(*(int *)(pcVar6 + 4) - (int)ppcVar17)" (( "(") (binary_expression "*(int *)(pcVar6 + 4) - (int)ppcVar17" (pointer_expression "*(int *)(pcVar6 + 4)" (* "*") (cast_expression "(int *)(pcVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")")))) (- "-") (cast_expression "(int)ppcVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar17"))) () ")")))) (; ";")) (expression_statement "puVar14 = puVar19 + 3;" (assignment_expression "puVar14 = puVar19 + 3" (identifier "puVar14") (= "=") (binary_expression "puVar19 + 3" (identifier "puVar19") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" (identifier "iVar11") (= "=") (identifier "iVar13")) (; ";")) (if_statement "if (ppcVar24 == ppcVar12) {\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }\n    else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }" (if "if") (parenthesized_expression "(ppcVar24 == ppcVar12)" (( "(") (binary_expression "ppcVar24 == ppcVar12" (identifier "ppcVar24") (== "==") (identifier "ppcVar12")) () ")")) (compound_statement "{\n      iVar20 = *(int *)pcVar6;\n      pcVar22 = (code *)((int)ppcStack_cc + iVar20);\n      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);\n      if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }\n      if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }\n      iVar16 = (int)ppcVar7 + -1;\n      if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }\n      ppcVar17 = ppcStack_cc;\n      if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }\n      ppcVar17 = ppcStack_c4;\n      iVar20 = 3;\n      if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }\n      if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }\n      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';\n      ppcStack_c4 = *(code ***)(pcVar6 + 4);\n      pcVar22 = pcVar6;\n      (*pcStack_bc)(pcVar6,0);\n      ppcStack_c8 = ppcStack_c0;\n      ppcVar17 = ppcStack_c0;\n      ppcVar7 = ppcStack_c0;\n      puVar19 = puVar14;\n      ppcVar24 = ppcStack_c0;\n      ppcVar12 = ppcStack_c0;\n    }" ({ "{") (expression_statement "iVar20 = *(int *)pcVar6;" (assignment_expression "iVar20 = *(int *)pcVar6" (identifier "iVar20") (= "=") (pointer_expression "*(int *)pcVar6" (* "*") (cast_expression "(int *)pcVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar6")))) (; ";")) (expression_statement "pcVar22 = (code *)((int)ppcStack_cc + iVar20);" (assignment_expression "pcVar22 = (code *)((int)ppcStack_cc + iVar20)" (identifier "pcVar22") (= "=") (cast_expression "(code *)((int)ppcStack_cc + iVar20)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcStack_cc + iVar20)" (( "(") (binary_expression "(int)ppcStack_cc + iVar20" (cast_expression "(int)ppcStack_cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcStack_cc")) (+ "+") (identifier "iVar20")) () ")")))) (; ";")) (expression_statement "ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);" (assignment_expression "ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" (identifier "ppcStack_c0") (= "=") (cast_expression "(code **)(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (call_expression "(**(code **)(pcStack_d8 + -0x72b4))\n                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x72b4))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x72b4)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x72b4)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x72b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x72b4)" (( "(") (binary_expression "pcStack_d8 + -0x72b4" (identifier "pcStack_d8") (+ "+") (number_literal "-0x72b4")) () ")"))))) () ")")) (argument_list "(pcVar22,(int)ppcVar17 + iVar20,ppcVar12)" (( "(") (identifier "pcVar22") (, ",") (binary_expression "(int)ppcVar17 + iVar20" (cast_expression "(int)ppcVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar17")) (+ "+") (identifier "iVar20")) (, ",") (identifier "ppcVar12") () ")"))))) (; ";")) (if_statement "if (ppcStack_c0 != (code **)0x0) {\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }" (if "if") (parenthesized_expression "(ppcStack_c0 != (code **)0x0)" (( "(") (binary_expression "ppcStack_c0 != (code **)0x0" (identifier "ppcStack_c0") (!= "!=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        ppcStack_c8 = (code **)0x0;\n        goto LAB_0004affc;\n      }" ({ "{") (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" (identifier "ppcStack_c8") (= "=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (goto_statement "goto LAB_0004affc;" (goto "goto") (statement_identifier "LAB_0004affc") (; ";")) (} "}"))) (if_statement "if ((int)ppcVar12 < 2) {\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }" (if "if") (parenthesized_expression "((int)ppcVar12 < 2)" (( "(") (binary_expression "(int)ppcVar12 < 2" (cast_expression "(int)ppcVar12" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar12")) (< "<") (number_literal "2")) () ")")) (compound_statement "{\n        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;\n        ppcStack_c8 = (code **)0x1;\n        goto LAB_0004affc;\n      }" ({ "{") (if_statement "if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;" (if "if") (parenthesized_expression "(ppcStack_c8 != (code **)0x0)" (( "(") (binary_expression "ppcStack_c8 != (code **)0x0" (identifier "ppcStack_c8") (!= "!=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004b138;" (goto "goto") (statement_identifier "LAB_0004b138") (; ";"))) (expression_statement "ppcStack_c8 = (code **)0x1;" (assignment_expression "ppcStack_c8 = (code **)0x1" (identifier "ppcStack_c8") (= "=") (cast_expression "(code **)0x1" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x1"))) (; ";")) (goto_statement "goto LAB_0004affc;" (goto "goto") (statement_identifier "LAB_0004affc") (; ";")) (} "}"))) (expression_statement "iVar16 = (int)ppcVar7 + -1;" (assignment_expression "iVar16 = (int)ppcVar7 + -1" (identifier "iVar16") (= "=") (binary_expression "(int)ppcVar7 + -1" (cast_expression "(int)ppcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar7")) (+ "+") (number_literal "-1"))) (; ";")) (if_statement "if (ppcStack_c8 != (code **)0x0) {\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }" (if "if") (parenthesized_expression "(ppcStack_c8 != (code **)0x0)" (( "(") (binary_expression "ppcStack_c8 != (code **)0x0" (identifier "ppcStack_c8") (!= "!=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\nLAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;\n        if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);\n      }" ({ "{") (labeled_statement "LAB_0004b138:\n        iVar16 = (int)ppcVar7 + -2;" (statement_identifier "LAB_0004b138") (: ":") (expression_statement "iVar16 = (int)ppcVar7 + -2;" (assignment_expression "iVar16 = (int)ppcVar7 + -2" (identifier "iVar16") (= "=") (binary_expression "(int)ppcVar7 + -2" (cast_expression "(int)ppcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar7")) (+ "+") (number_literal "-2"))) (; ";"))) (if_statement "if ((int)ppcVar7 + -1 < 1) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" (if "if") (parenthesized_expression "((int)ppcVar7 + -1 < 1)" (( "(") (binary_expression "(int)ppcVar7 + -1 < 1" (binary_expression "(int)ppcVar7 + -1" (cast_expression "(int)ppcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar7")) (+ "+") (number_literal "-1")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" ({ "{") (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7774)" (( "(") (binary_expression "pcStack_d8 + -0x7774" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a54" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x2a54")) (, ",") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x28d0")) (, ",") (number_literal "0x1c7") (, ",") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x3488")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);" (assignment_expression "ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24)" (identifier "ppcStack_cc") (= "=") (cast_expression "(code **)((int)ppcStack_cc - (int)ppcVar24)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcStack_cc - (int)ppcVar24)" (( "(") (binary_expression "(int)ppcStack_cc - (int)ppcVar24" (cast_expression "(int)ppcStack_cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcStack_cc")) (- "-") (cast_expression "(int)ppcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar24"))) () ")")))) (; ";")) (} "}"))) (expression_statement "ppcVar17 = ppcStack_cc;" (assignment_expression "ppcVar17 = ppcStack_cc" (identifier "ppcVar17") (= "=") (identifier "ppcStack_cc")) (; ";")) (if_statement "if (iVar16 == 0) {\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }\n      else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }" (if "if") (parenthesized_expression "(iVar16 == 0)" (( "(") (binary_expression "iVar16 == 0" (identifier "iVar16") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;\n      }" ({ "{") (if_statement "if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" (if "if") (parenthesized_expression "((code **)((int)ppcStack_c4 + 1) != ppcStack_cc)" (( "(") (binary_expression "(code **)((int)ppcStack_c4 + 1) != ppcStack_cc" (cast_expression "(code **)((int)ppcStack_c4 + 1)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcStack_c4 + 1)" (( "(") (binary_expression "(int)ppcStack_c4 + 1" (cast_expression "(int)ppcStack_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcStack_c4")) (+ "+") (number_literal "1")) () ")"))) (!= "!=") (identifier "ppcStack_cc")) () ")")) (compound_statement "{\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" ({ "{") (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7774)" (( "(") (binary_expression "pcStack_d8 + -0x7774" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a60" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x2a60")) (, ",") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x28d0")) (, ",") (number_literal "0x1cd") (, ",") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x3488")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;" (assignment_expression "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc" (pointer_expression "*(int *)(pcVar6 + 4)" (* "*") (cast_expression "(int *)(pcVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "(int)ppcVar24 + (int)ppcStack_cc" (cast_expression "(int)ppcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar24")) (+ "+") (cast_expression "(int)ppcStack_cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcStack_cc")))) (; ";")) (} "}")) (else_clause "else {\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }" (else "else") (compound_statement "{\n        (**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);\n        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;\n        if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }\n        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;\n        ppcStack_c4 = ppcStack_cc;\n      }" ({ "{") (expression_statement "(**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);" (call_expression "(**(code **)(pcStack_d8 + -0x76e0))\n                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x76e0))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x76e0)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x76e0)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x76e0)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x76e0)" (( "(") (binary_expression "pcStack_d8 + -0x76e0" (identifier "pcStack_d8") (+ "+") (number_literal "-0x76e0")) () ")"))))) () ")")) (argument_list "((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24)" (( "(") (binary_expression "(int)ppcStack_cc + iVar20 + 1" (binary_expression "(int)ppcStack_cc + iVar20" (cast_expression "(int)ppcStack_cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcStack_cc")) (+ "+") (identifier "iVar20")) (+ "+") (number_literal "1")) (, ",") (binary_expression "(int)ppcStack_cc + iVar20" (cast_expression "(int)ppcStack_cc" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcStack_cc")) (+ "+") (identifier "iVar20")) (, ",") (identifier "ppcVar24") () ")"))) (; ";")) (expression_statement "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;" (assignment_expression "*(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1" (pointer_expression "*(int *)(pcVar6 + 4)" (* "*") (cast_expression "(int *)(pcVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (binary_expression "(int)ppcVar24 + (int)ppcVar17 + 1" (binary_expression "(int)ppcVar24 + (int)ppcVar17" (cast_expression "(int)ppcVar24" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar24")) (+ "+") (cast_expression "(int)ppcVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar17"))) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (0x7f < iVar16 - 1U) {\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" (if "if") (parenthesized_expression "(0x7f < iVar16 - 1U)" (( "(") (binary_expression "0x7f < iVar16 - 1U" (number_literal "0x7f") (< "<") (binary_expression "iVar16 - 1U" (identifier "iVar16") (- "-") (number_literal "1U"))) () ")")) (compound_statement "{\n          (**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n          return;\n        }" ({ "{") (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7774)" (( "(") (binary_expression "pcStack_d8 + -0x7774" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0\n                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a78" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x2a78")) (, ",") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x28d0")) (, ",") (number_literal "0x1d8") (, ",") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x3488")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;" (assignment_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1" (pointer_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6)" (* "*") (cast_expression "(char *)((int)ppcStack_c4 + *(int *)pcVar6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcStack_c4 + *(int *)pcVar6)" (( "(") (binary_expression "(int)ppcStack_c4 + *(int *)pcVar6" (cast_expression "(int)ppcStack_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcStack_c4")) (+ "+") (pointer_expression "*(int *)pcVar6" (* "*") (cast_expression "(int *)pcVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar6")))) () ")")))) (= "=") (binary_expression "(char)iVar16 + -1" (cast_expression "(char)iVar16" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar16")) (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "ppcStack_c4 = ppcStack_cc;" (assignment_expression "ppcStack_c4 = ppcStack_cc" (identifier "ppcStack_c4") (= "=") (identifier "ppcStack_cc")) (; ";")) (} "}")))) (expression_statement "ppcVar17 = ppcStack_c4;" (assignment_expression "ppcVar17 = ppcStack_c4" (identifier "ppcVar17") (= "=") (identifier "ppcStack_c4")) (; ";")) (expression_statement "iVar20 = 3;" (assignment_expression "iVar20 = 3" (identifier "iVar20") (= "=") (number_literal "3")) (; ";")) (if_statement "if (ppcStack_c8 == (code **)0x0) {\n        iVar20 = 2;\n      }" (if "if") (parenthesized_expression "(ppcStack_c8 == (code **)0x0)" (( "(") (binary_expression "ppcStack_c8 == (code **)0x0" (identifier "ppcStack_c8") (== "==") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        iVar20 = 2;\n      }" ({ "{") (expression_statement "iVar20 = 2;" (assignment_expression "iVar20 = 2" (identifier "iVar20") (= "=") (number_literal "2")) (; ";")) (} "}"))) (if_statement "if (iVar13 < 1) {\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }\n      else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }" (if "if") (parenthesized_expression "(iVar13 < 1)" (( "(") (binary_expression "iVar13 < 1" (identifier "iVar13") (< "<") (number_literal "1")) () ")")) (compound_statement "{\nLAB_0004af8c:\n        iVar16 = *(int *)pcVar6;\n      }" ({ "{") (labeled_statement "LAB_0004af8c:\n        iVar16 = *(int *)pcVar6;" (statement_identifier "LAB_0004af8c") (: ":") (expression_statement "iVar16 = *(int *)pcVar6;" (assignment_expression "iVar16 = *(int *)pcVar6" (identifier "iVar16") (= "=") (pointer_expression "*(int *)pcVar6" (* "*") (cast_expression "(int *)pcVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar6")))) (; ";"))) (} "}")) (else_clause "else {\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }" (else "else") (compound_statement "{\n        do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);\n        iVar16 = *(int *)pcVar6;\n        iVar11 = iVar13;\n      }" ({ "{") (do_statement "do {\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        } while (iVar20 != 0x81);" (do "do") (compound_statement "{\n          uVar3 = uStack_b8;\n          iVar16 = *(int *)(pcVar6 + 4);\n          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);\n          iVar11 = *(int *)(pcVar6 + 4);\n          *(int *)(pcVar6 + 4) = iVar16;\n          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }\n          iVar13 = iVar13 + -1;\n          puVar14 = puVar14 + 3;\n          iVar20 = iVar20 + 1;\n          uVar3 = uStack_b8;\n          if (iVar13 == 0) goto LAB_0004af7c;\n        }" ({ "{") (expression_statement "uVar3 = uStack_b8;" (assignment_expression "uVar3 = uStack_b8" (identifier "uVar3") (= "=") (identifier "uStack_b8")) (; ";")) (expression_statement "iVar16 = *(int *)(pcVar6 + 4);" (assignment_expression "iVar16 = *(int *)(pcVar6 + 4)" (identifier "iVar16") (= "=") (pointer_expression "*(int *)(pcVar6 + 4)" (* "*") (cast_expression "(int *)(pcVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "(*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);" (call_expression "(*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8)" (parenthesized_expression "(*(code *)ppcStack_d0)" (( "(") (pointer_expression "*(code *)ppcStack_d0" (* "*") (cast_expression "(code *)ppcStack_d0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "ppcStack_d0"))) () ")")) (argument_list "(pcVar6,puVar14,&uStack_b8)" (( "(") (identifier "pcVar6") (, ",") (identifier "puVar14") (, ",") (pointer_expression "&uStack_b8" (& "&") (identifier "uStack_b8")) () ")"))) (; ";")) (expression_statement "iVar11 = *(int *)(pcVar6 + 4);" (assignment_expression "iVar11 = *(int *)(pcVar6 + 4)" (identifier "iVar11") (= "=") (pointer_expression "*(int *)(pcVar6 + 4)" (* "*") (cast_expression "(int *)(pcVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "*(int *)(pcVar6 + 4) = iVar16;" (assignment_expression "*(int *)(pcVar6 + 4) = iVar16" (pointer_expression "*(int *)(pcVar6 + 4)" (* "*") (cast_expression "(int *)(pcVar6 + 4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "iVar16")) (; ";")) (if_statement "if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)) {\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }" (if "if") (parenthesized_expression "((ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0))" (( "(") (binary_expression "(ppcVar12 != (code **)(iVar11 - iVar16)) ||\n             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)" (parenthesized_expression "(ppcVar12 != (code **)(iVar11 - iVar16))" (( "(") (binary_expression "ppcVar12 != (code **)(iVar11 - iVar16)" (identifier "ppcVar12") (!= "!=") (cast_expression "(code **)(iVar11 - iVar16)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(iVar11 - iVar16)" (( "(") (binary_expression "iVar11 - iVar16" (identifier "iVar11") (- "-") (identifier "iVar16")) () ")")))) () ")")) (|| "||") (parenthesized_expression "(iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0)" (( "(") (comma_expression "iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),\n             iVar11 != 0" (assignment_expression "iVar11 = (**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16)" (identifier "iVar11") (= "=") (call_expression "(**(code **)(pcStack_d8 + -0x72b4))\n                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x72b4))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x72b4)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x72b4)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x72b4)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x72b4)" (( "(") (binary_expression "pcStack_d8 + -0x72b4" (identifier "pcStack_d8") (+ "+") (number_literal "-0x72b4")) () ")"))))) () ")")) (argument_list "((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16)" (( "(") (binary_expression "(int)ppcVar17 + *(int *)pcVar6 + 1" (binary_expression "(int)ppcVar17 + *(int *)pcVar6" (cast_expression "(int)ppcVar17" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar17")) (+ "+") (pointer_expression "*(int *)pcVar6" (* "*") (cast_expression "(int *)pcVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar6")))) (+ "+") (number_literal "1")) (, ",") (binary_expression "*(int *)pcVar6 + iVar16" (pointer_expression "*(int *)pcVar6" (* "*") (cast_expression "(int *)pcVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar6"))) (+ "+") (identifier "iVar16")) () ")")))) (, ",") (binary_expression "iVar11 != 0" (identifier "iVar11") (!= "!=") (number_literal "0"))) () ")"))) () ")")) (compound_statement "{\nLAB_0004af7c:\n            uStack_b8 = uVar3;\n            param_4 = *(int *)(pcStack_d8 + -0x7f68);\n            iVar11 = iVar13;\n            if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }\n            goto LAB_0004af8c;\n          }" ({ "{") (labeled_statement "LAB_0004af7c:\n            uStack_b8 = uVar3;" (statement_identifier "LAB_0004af7c") (: ":") (expression_statement "uStack_b8 = uVar3;" (assignment_expression "uStack_b8 = uVar3" (identifier "uStack_b8") (= "=") (identifier "uVar3")) (; ";"))) (expression_statement "param_4 = *(int *)(pcStack_d8 + -0x7f68);" (assignment_expression "param_4 = *(int *)(pcStack_d8 + -0x7f68)" (identifier "param_4") (= "=") (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")"))))) (; ";")) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" (identifier "iVar11") (= "=") (identifier "iVar13")) (; ";")) (if_statement "if (0x7f < iVar20 - 2U) {\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }" (if "if") (parenthesized_expression "(0x7f < iVar20 - 2U)" (( "(") (binary_expression "0x7f < iVar20 - 2U" (number_literal "0x7f") (< "<") (binary_expression "iVar20 - 2U" (identifier "iVar20") (- "-") (number_literal "2U"))) () ")")) (compound_statement "{\n              (**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);\n              return;\n            }" ({ "{") (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7774)" (( "(") (binary_expression "pcStack_d8 + -0x7774" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,\n                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a98" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x2a98")) (, ",") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x28d0")) (, ",") (number_literal "0x1ed") (, ",") (binary_expression "param_4 + 0x3488" (identifier "param_4") (+ "+") (number_literal "0x3488")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (goto_statement "goto LAB_0004af8c;" (goto "goto") (statement_identifier "LAB_0004af8c") (; ";")) (} "}"))) (expression_statement "iVar13 = iVar13 + -1;" (assignment_expression "iVar13 = iVar13 + -1" (identifier "iVar13") (= "=") (binary_expression "iVar13 + -1" (identifier "iVar13") (+ "+") (number_literal "-1"))) (; ";")) (expression_statement "puVar14 = puVar14 + 3;" (assignment_expression "puVar14 = puVar14 + 3" (identifier "puVar14") (= "=") (binary_expression "puVar14 + 3" (identifier "puVar14") (+ "+") (number_literal "3"))) (; ";")) (expression_statement "iVar20 = iVar20 + 1;" (assignment_expression "iVar20 = iVar20 + 1" (identifier "iVar20") (= "=") (binary_expression "iVar20 + 1" (identifier "iVar20") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "uVar3 = uStack_b8;" (assignment_expression "uVar3 = uStack_b8" (identifier "uVar3") (= "=") (identifier "uStack_b8")) (; ";")) (if_statement "if (iVar13 == 0) goto LAB_0004af7c;" (if "if") (parenthesized_expression "(iVar13 == 0)" (( "(") (binary_expression "iVar13 == 0" (identifier "iVar13") (== "==") (number_literal "0")) () ")")) (goto_statement "goto LAB_0004af7c;" (goto "goto") (statement_identifier "LAB_0004af7c") (; ";"))) (} "}")) (while "while") (parenthesized_expression "(iVar20 != 0x81)" (( "(") (binary_expression "iVar20 != 0x81" (identifier "iVar20") (!= "!=") (number_literal "0x81")) () ")")) (; ";")) (expression_statement "iVar16 = *(int *)pcVar6;" (assignment_expression "iVar16 = *(int *)pcVar6" (identifier "iVar16") (= "=") (pointer_expression "*(int *)pcVar6" (* "*") (cast_expression "(int *)pcVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar6")))) (; ";")) (expression_statement "iVar11 = iVar13;" (assignment_expression "iVar11 = iVar13" (identifier "iVar11") (= "=") (identifier "iVar13")) (; ";")) (} "}")))) (expression_statement "*(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';" (assignment_expression "*(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~'" (pointer_expression "*(char *)((int)ppcStack_c4 + iVar16)" (* "*") (cast_expression "(char *)((int)ppcStack_c4 + iVar16)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcStack_c4 + iVar16)" (( "(") (binary_expression "(int)ppcStack_c4 + iVar16" (cast_expression "(int)ppcStack_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcStack_c4")) (+ "+") (identifier "iVar16")) () ")")))) (= "=") (binary_expression "(char)iVar20 + '~'" (cast_expression "(char)iVar20" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "iVar20")) (+ "+") (char_literal "'~'" (' "'") (character "~") (' "'")))) (; ";")) (expression_statement "ppcStack_c4 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcStack_c4 = *(code ***)(pcVar6 + 4)" (identifier "ppcStack_c4") (= "=") (pointer_expression "*(code ***)(pcVar6 + 4)" (* "*") (cast_expression "(code ***)(pcVar6 + 4)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" (identifier "pcVar22") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "(*pcStack_bc)(pcVar6,0);" (call_expression "(*pcStack_bc)(pcVar6,0)" (parenthesized_expression "(*pcStack_bc)" (( "(") (pointer_expression "*pcStack_bc" (* "*") (identifier "pcStack_bc")) () ")")) (argument_list "(pcVar6,0)" (( "(") (identifier "pcVar6") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "ppcStack_c8 = ppcStack_c0;" (assignment_expression "ppcStack_c8 = ppcStack_c0" (identifier "ppcStack_c8") (= "=") (identifier "ppcStack_c0")) (; ";")) (expression_statement "ppcVar17 = ppcStack_c0;" (assignment_expression "ppcVar17 = ppcStack_c0" (identifier "ppcVar17") (= "=") (identifier "ppcStack_c0")) (; ";")) (expression_statement "ppcVar7 = ppcStack_c0;" (assignment_expression "ppcVar7 = ppcStack_c0" (identifier "ppcVar7") (= "=") (identifier "ppcStack_c0")) (; ";")) (expression_statement "puVar19 = puVar14;" (assignment_expression "puVar19 = puVar14" (identifier "puVar19") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "ppcVar24 = ppcStack_c0;" (assignment_expression "ppcVar24 = ppcStack_c0" (identifier "ppcVar24") (= "=") (identifier "ppcStack_c0")) (; ";")) (expression_statement "ppcVar12 = ppcStack_c0;" (assignment_expression "ppcVar12 = ppcStack_c0" (identifier "ppcVar12") (= "=") (identifier "ppcStack_c0")) (; ";")) (} "}")) (else_clause "else {\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }" (else "else") (compound_statement "{\n      ppcStack_c8 = (code **)0x0;\nLAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);\n      puVar19 = puVar14;\n      ppcVar24 = ppcVar12;\n      ppcVar12 = ppcVar17;\n      if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }\n    }" ({ "{") (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" (identifier "ppcStack_c8") (= "=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (labeled_statement "LAB_0004affc:\n      ppcVar7 = (code **)((int)ppcVar7 + 1);" (statement_identifier "LAB_0004affc") (: ":") (expression_statement "ppcVar7 = (code **)((int)ppcVar7 + 1);" (assignment_expression "ppcVar7 = (code **)((int)ppcVar7 + 1)" (identifier "ppcVar7") (= "=") (cast_expression "(code **)((int)ppcVar7 + 1)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "((int)ppcVar7 + 1)" (( "(") (binary_expression "(int)ppcVar7 + 1" (cast_expression "(int)ppcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar7")) (+ "+") (number_literal "1")) () ")")))) (; ";"))) (expression_statement "puVar19 = puVar14;" (assignment_expression "puVar19 = puVar14" (identifier "puVar19") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "ppcVar24 = ppcVar12;" (assignment_expression "ppcVar24 = ppcVar12" (identifier "ppcVar24") (= "=") (identifier "ppcVar12")) (; ";")) (expression_statement "ppcVar12 = ppcVar17;" (assignment_expression "ppcVar12 = ppcVar17" (identifier "ppcVar12") (= "=") (identifier "ppcVar17")) (; ";")) (if_statement "if (ppcVar7 == (code **)0x80) {\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }" (if "if") (parenthesized_expression "(ppcVar7 == (code **)0x80)" (( "(") (binary_expression "ppcVar7 == (code **)0x80" (identifier "ppcVar7") (== "==") (cast_expression "(code **)0x80" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x80"))) () ")")) (compound_statement "{\n        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;\n        ppcStack_c4 = *(code ***)(pcVar6 + 4);\n        pcVar22 = pcVar6;\n        (*pcStack_bc)(pcVar6,0);\n        ppcStack_c8 = (code **)0x0;\n        ppcVar17 = (code **)0x0;\n        ppcVar7 = (code **)0x0;\n        ppcVar24 = (code **)0x0;\n        ppcVar12 = (code **)0x0;\n      }" ({ "{") (expression_statement "*(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;" (assignment_expression "*(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f" (pointer_expression "*(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6)" (* "*") (cast_expression "(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6)" (( "(") (type_descriptor "undefined1 *" (type_identifier "undefined1") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcStack_c4 + *(int *)pcVar6)" (( "(") (binary_expression "(int)ppcStack_c4 + *(int *)pcVar6" (cast_expression "(int)ppcStack_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcStack_c4")) (+ "+") (pointer_expression "*(int *)pcVar6" (* "*") (cast_expression "(int *)pcVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar6")))) () ")")))) (= "=") (number_literal "0x7f")) (; ";")) (expression_statement "ppcStack_c4 = *(code ***)(pcVar6 + 4);" (assignment_expression "ppcStack_c4 = *(code ***)(pcVar6 + 4)" (identifier "ppcStack_c4") (= "=") (pointer_expression "*(code ***)(pcVar6 + 4)" (* "*") (cast_expression "(code ***)(pcVar6 + 4)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcVar22 = pcVar6;" (assignment_expression "pcVar22 = pcVar6" (identifier "pcVar22") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "(*pcStack_bc)(pcVar6,0);" (call_expression "(*pcStack_bc)(pcVar6,0)" (parenthesized_expression "(*pcStack_bc)" (( "(") (pointer_expression "*pcStack_bc" (* "*") (identifier "pcStack_bc")) () ")")) (argument_list "(pcVar6,0)" (( "(") (identifier "pcVar6") (, ",") (number_literal "0") () ")"))) (; ";")) (expression_statement "ppcStack_c8 = (code **)0x0;" (assignment_expression "ppcStack_c8 = (code **)0x0" (identifier "ppcStack_c8") (= "=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcVar17 = (code **)0x0;" (assignment_expression "ppcVar17 = (code **)0x0" (identifier "ppcVar17") (= "=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcVar7 = (code **)0x0;" (assignment_expression "ppcVar7 = (code **)0x0" (identifier "ppcVar7") (= "=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcVar24 = (code **)0x0;" (assignment_expression "ppcVar24 = (code **)0x0" (identifier "ppcVar24") (= "=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (expression_statement "ppcVar12 = (code **)0x0;" (assignment_expression "ppcVar12 = (code **)0x0" (identifier "ppcVar12") (= "=") (cast_expression "(code **)0x0" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")))) (} "}"))) (if_statement "if ((int)ppcVar7 < 1) {\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }\n  else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }" (if "if") (parenthesized_expression "((int)ppcVar7 < 1)" (( "(") (binary_expression "(int)ppcVar7 < 1" (cast_expression "(int)ppcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar7")) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n    *(code ***)(pcVar6 + 4) = ppcStack_c4;\n  }" ({ "{") (expression_statement "*(code ***)(pcVar6 + 4) = ppcStack_c4;" (assignment_expression "*(code ***)(pcVar6 + 4) = ppcStack_c4" (pointer_expression "*(code ***)(pcVar6 + 4)" (* "*") (cast_expression "(code ***)(pcVar6 + 4)" (( "(") (type_descriptor "code ***" (type_identifier "code") (abstract_pointer_declarator "***" (* "*") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*"))))) () ")") (parenthesized_expression "(pcVar6 + 4)" (( "(") (binary_expression "pcVar6 + 4" (identifier "pcVar6") (+ "+") (number_literal "4")) () ")")))) (= "=") (identifier "ppcStack_c4")) (; ";")) (} "}")) (else_clause "else {\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }" (else "else") (compound_statement "{\n    if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }\n    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;\n  }" ({ "{") (if_statement "if (0x80 < (int)ppcVar7) {\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }" (if "if") (parenthesized_expression "(0x80 < (int)ppcVar7)" (( "(") (binary_expression "0x80 < (int)ppcVar7" (number_literal "0x80") (< "<") (cast_expression "(int)ppcVar7" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcVar7"))) () ")")) (compound_statement "{\n      (**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);\n      return;\n    }" ({ "{") (expression_statement "(**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);" (call_expression "(**(code **)(pcStack_d8 + -0x7774))\n                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (parenthesized_expression "(**(code **)(pcStack_d8 + -0x7774))" (( "(") (pointer_expression "**(code **)(pcStack_d8 + -0x7774)" (* "*") (pointer_expression "*(code **)(pcStack_d8 + -0x7774)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x7774)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7774)" (( "(") (binary_expression "pcStack_d8 + -0x7774" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7774")) () ")"))))) () ")")) (argument_list "(*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,\n                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488)" (( "(") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x2a88" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x2a88")) (, ",") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x28d0" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x28d0")) (, ",") (number_literal "0x21b") (, ",") (binary_expression "*(int *)(pcStack_d8 + -0x7f68) + 0x3488" (pointer_expression "*(int *)(pcStack_d8 + -0x7f68)" (* "*") (cast_expression "(int *)(pcStack_d8 + -0x7f68)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcStack_d8 + -0x7f68)" (( "(") (binary_expression "pcStack_d8 + -0x7f68" (identifier "pcStack_d8") (+ "+") (number_literal "-0x7f68")) () ")")))) (+ "+") (number_literal "0x3488")) () ")"))) (; ";")) (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;" (assignment_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1" (pointer_expression "*(char *)((int)ppcStack_c4 + *(int *)pcVar6)" (* "*") (cast_expression "(char *)((int)ppcStack_c4 + *(int *)pcVar6)" (( "(") (type_descriptor "char *" (primitive_type "char") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "((int)ppcStack_c4 + *(int *)pcVar6)" (( "(") (binary_expression "(int)ppcStack_c4 + *(int *)pcVar6" (cast_expression "(int)ppcStack_c4" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "ppcStack_c4")) (+ "+") (pointer_expression "*(int *)pcVar6" (* "*") (cast_expression "(int *)pcVar6" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar6")))) () ")")))) (= "=") (binary_expression "(char)ppcVar7 + -1" (cast_expression "(char)ppcVar7" (( "(") (type_descriptor "char" (primitive_type "char")) () ")") (identifier "ppcVar7")) (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (if_statement "if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_b4 == **(int **)(pcStack_d8 + -0x70bc))" (( "(") (binary_expression "iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)" (identifier "iStack_b4") (== "==") (pointer_expression "**(int **)(pcStack_d8 + -0x70bc)" (* "*") (pointer_expression "*(int **)(pcStack_d8 + -0x70bc)" (* "*") (cast_expression "(int **)(pcStack_d8 + -0x70bc)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x70bc)" (( "(") (binary_expression "pcStack_d8 + -0x70bc" (identifier "pcStack_d8") (+ "+") (number_literal "-0x70bc")) () ")")))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar23 = *(code **)(pcStack_d8 + -0x741c);" (assignment_expression "pcVar23 = *(code **)(pcStack_d8 + -0x741c)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(pcStack_d8 + -0x741c)" (* "*") (cast_expression "(code **)(pcStack_d8 + -0x741c)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcStack_d8 + -0x741c)" (( "(") (binary_expression "pcStack_d8 + -0x741c" (identifier "pcStack_d8") (+ "+") (number_literal "-0x741c")) () ")"))))) (; ";")) (expression_statement "pcVar1 = FUN_0004b15c;" (assignment_expression "pcVar1 = FUN_0004b15c" (identifier "pcVar1") (= "=") (identifier "FUN_0004b15c")) (; ";")) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (expression_statement "pcVar10 = pcVar23 + 0x7a074;" (assignment_expression "pcVar10 = pcVar23 + 0x7a074" (identifier "pcVar10") (= "=") (binary_expression "pcVar23 + 0x7a074" (identifier "pcVar23") (+ "+") (number_literal "0x7a074"))) (; ";")) (expression_statement "iStack_104 = **(int **)(pcVar23 + 0x72fb8);" (assignment_expression "iStack_104 = **(int **)(pcVar23 + 0x72fb8)" (identifier "iStack_104") (= "=") (pointer_expression "**(int **)(pcVar23 + 0x72fb8)" (* "*") (pointer_expression "*(int **)(pcVar23 + 0x72fb8)" (* "*") (cast_expression "(int **)(pcVar23 + 0x72fb8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x72fb8)" (( "(") (binary_expression "pcVar23 + 0x72fb8" (identifier "pcVar23") (+ "+") (number_literal "0x72fb8")) () ")")))))) (; ";")) (expression_statement "uStack_110 = 0;" (assignment_expression "uStack_110 = 0" (identifier "uStack_110") (= "=") (number_literal "0")) (; ";")) (expression_statement "iStack_10c = 0;" (assignment_expression "iStack_10c = 0" (identifier "iStack_10c") (= "=") (number_literal "0")) (; ";")) (expression_statement "uStack_108 = 0;" (assignment_expression "uStack_108 = 0" (identifier "uStack_108") (= "=") (number_literal "0")) (; ";")) (expression_statement "uVar8 = *(uint *)(pcVar22 + 4);" (assignment_expression "uVar8 = *(uint *)(pcVar22 + 4)" (identifier "uVar8") (= "=") (pointer_expression "*(uint *)(pcVar22 + 4)" (* "*") (cast_expression "(uint *)(pcVar22 + 4)" (( "(") (type_descriptor "uint *" (type_identifier "uint") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar22 + 4)" (( "(") (binary_expression "pcVar22 + 4" (identifier "pcVar22") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "pcStack_100 = pcVar6;" (assignment_expression "pcStack_100 = pcVar6" (identifier "pcStack_100") (= "=") (identifier "pcVar6")) (; ";")) (expression_statement "iStack_fc = iVar11;" (assignment_expression "iStack_fc = iVar11" (identifier "iStack_fc") (= "=") (identifier "iVar11")) (; ";")) (expression_statement "iStack_f8 = iVar13;" (assignment_expression "iStack_f8 = iVar13" (identifier "iStack_f8") (= "=") (identifier "iVar13")) (; ";")) (expression_statement "puStack_f4 = puVar14;" (assignment_expression "puStack_f4 = puVar14" (identifier "puStack_f4") (= "=") (identifier "puVar14")) (; ";")) (expression_statement "ppcStack_f0 = ppcVar17;" (assignment_expression "ppcStack_f0 = ppcVar17" (identifier "ppcStack_f0") (= "=") (identifier "ppcVar17")) (; ";")) (expression_statement "pcStack_ec = pcVar1;" (assignment_expression "pcStack_ec = pcVar1" (identifier "pcStack_ec") (= "=") (identifier "pcVar1")) (; ";")) (if_statement "if (0x7f < (int)uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }" (if "if") (parenthesized_expression "(0x7f < (int)uVar8)" (( "(") (binary_expression "0x7f < (int)uVar8" (number_literal "0x7f") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (compound_statement "{\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);\n  }" ({ "{") (do_statement "do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < (int)uVar8);" (do "do") (compound_statement "{\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    }" ({ "{") (expression_statement "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);" (call_expression "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" (identifier "FUN_00048168") (argument_list "(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" (( "(") (pointer_expression "&uStack_110" (& "&") (identifier "uStack_110")) (, ",") (binary_expression "(uVar8 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar8 | 0xffffff80)" (( "(") (binary_expression "uVar8 | 0xffffff80" (identifier "uVar8") (| "|") (number_literal "0xffffff80")) () ")")) (& "&") (number_literal "0xff")) () ")"))) (; ";")) (expression_statement "uVar8 = (int)uVar8 >> 7;" (assignment_expression "uVar8 = (int)uVar8 >> 7" (identifier "uVar8") (= "=") (binary_expression "(int)uVar8 >> 7" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0x7f < (int)uVar8)" (( "(") (binary_expression "0x7f < (int)uVar8" (number_literal "0x7f") (< "<") (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8"))) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00048168(&uStack_110,uVar8 & 0xff);" (call_expression "FUN_00048168(&uStack_110,uVar8 & 0xff)" (identifier "FUN_00048168") (argument_list "(&uStack_110,uVar8 & 0xff)" (( "(") (pointer_expression "&uStack_110" (& "&") (identifier "uStack_110")) (, ",") (binary_expression "uVar8 & 0xff" (identifier "uVar8") (& "&") (number_literal "0xff")) () ")"))) (; ";")) (expression_statement "uVar8 = (uint)*(ushort *)pcVar22;" (assignment_expression "uVar8 = (uint)*(ushort *)pcVar22" (identifier "uVar8") (= "=") (binary_expression "(uint)*(ushort *)pcVar22" (parenthesized_expression "(uint)" (( "(") (identifier "uint") () ")")) (* "*") (cast_expression "(ushort *)pcVar22" (( "(") (type_descriptor "ushort *" (type_identifier "ushort") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "pcVar22")))) (; ";")) (if_statement "if (0x7f < uVar8) {\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }" (if "if") (parenthesized_expression "(0x7f < uVar8)" (( "(") (binary_expression "0x7f < uVar8" (number_literal "0x7f") (< "<") (identifier "uVar8")) () ")")) (compound_statement "{\n    do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);\n  }" ({ "{") (do_statement "do {\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    } while (0x7f < uVar8);" (do "do") (compound_statement "{\n      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);\n      uVar8 = (int)uVar8 >> 7;\n    }" ({ "{") (expression_statement "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);" (call_expression "FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" (identifier "FUN_00048168") (argument_list "(&uStack_110,(uVar8 | 0xffffff80) & 0xff)" (( "(") (pointer_expression "&uStack_110" (& "&") (identifier "uStack_110")) (, ",") (binary_expression "(uVar8 | 0xffffff80) & 0xff" (parenthesized_expression "(uVar8 | 0xffffff80)" (( "(") (binary_expression "uVar8 | 0xffffff80" (identifier "uVar8") (| "|") (number_literal "0xffffff80")) () ")")) (& "&") (number_literal "0xff")) () ")"))) (; ";")) (expression_statement "uVar8 = (int)uVar8 >> 7;" (assignment_expression "uVar8 = (int)uVar8 >> 7" (identifier "uVar8") (= "=") (binary_expression "(int)uVar8 >> 7" (cast_expression "(int)uVar8" (( "(") (type_descriptor "int" (primitive_type "int")) () ")") (identifier "uVar8")) (>> ">>") (number_literal "7"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(0x7f < uVar8)" (( "(") (binary_expression "0x7f < uVar8" (number_literal "0x7f") (< "<") (identifier "uVar8")) () ")")) (; ";")) (} "}"))) (expression_statement "FUN_00048168(&uStack_110,uVar8 & 0xff);" (call_expression "FUN_00048168(&uStack_110,uVar8 & 0xff)" (identifier "FUN_00048168") (argument_list "(&uStack_110,uVar8 & 0xff)" (( "(") (pointer_expression "&uStack_110" (& "&") (identifier "uStack_110")) (, ",") (binary_expression "uVar8 & 0xff" (identifier "uVar8") (& "&") (number_literal "0xff")) () ")"))) (; ";")) (expression_statement "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);" (call_expression "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4)" (identifier "FUN_0004acfc") (argument_list "(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4)" (( "(") (pointer_expression "&uStack_110" (& "&") (identifier "uStack_110")) (, ",") (identifier "pcVar22") (, ",") (binary_expression "*(int *)(pcVar23 + 0x724c4) + -0x7cc4" (pointer_expression "*(int *)(pcVar23 + 0x724c4)" (* "*") (cast_expression "(int *)(pcVar23 + 0x724c4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x724c4)" (( "(") (binary_expression "pcVar23 + 0x724c4" (identifier "pcVar23") (+ "+") (number_literal "0x724c4")) () ")")))) (+ "+") (number_literal "-0x7cc4")) () ")"))) (; ";")) (expression_statement "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);" (call_expression "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8)" (identifier "FUN_0004acfc") (argument_list "(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8)" (( "(") (pointer_expression "&uStack_110" (& "&") (identifier "uStack_110")) (, ",") (identifier "pcVar22") (, ",") (binary_expression "*(int *)(pcVar23 + 0x724c4) + -0x7df8" (pointer_expression "*(int *)(pcVar23 + 0x724c4)" (* "*") (cast_expression "(int *)(pcVar23 + 0x724c4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x724c4)" (( "(") (binary_expression "pcVar23 + 0x724c4" (identifier "pcVar23") (+ "+") (number_literal "0x724c4")) () ")")))) (+ "+") (number_literal "-0x7df8")) () ")"))) (; ";")) (expression_statement "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);" (call_expression "FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08)" (identifier "FUN_0004acfc") (argument_list "(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08)" (( "(") (pointer_expression "&uStack_110" (& "&") (identifier "uStack_110")) (, ",") (identifier "pcVar22") (, ",") (binary_expression "*(int *)(pcVar23 + 0x724c4) + -0x6e08" (pointer_expression "*(int *)(pcVar23 + 0x724c4)" (* "*") (cast_expression "(int *)(pcVar23 + 0x724c4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x724c4)" (( "(") (binary_expression "pcVar23 + 0x724c4" (identifier "pcVar23") (+ "+") (number_literal "0x724c4")) () ")")))) (+ "+") (number_literal "-0x6e08")) () ")"))) (; ";")) (expression_statement "iVar13 = 1;" (assignment_expression "iVar13 = 1" (identifier "iVar13") (= "=") (number_literal "1")) (; ";")) (expression_statement "iVar11 = iStack_10c;" (assignment_expression "iVar11 = iStack_10c" (identifier "iVar11") (= "=") (identifier "iStack_10c")) (; ";")) (expression_statement "saferealloc(uStack_110);" (call_expression "saferealloc(uStack_110)" (identifier "saferealloc") (argument_list "(uStack_110)" (( "(") (identifier "uStack_110") () ")"))) (; ";")) (if_statement "if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {\n    return;\n  }" (if "if") (parenthesized_expression "(iStack_104 == **(int **)(pcVar23 + 0x72fb8))" (( "(") (binary_expression "iStack_104 == **(int **)(pcVar23 + 0x72fb8)" (identifier "iStack_104") (== "==") (pointer_expression "**(int **)(pcVar23 + 0x72fb8)" (* "*") (pointer_expression "*(int **)(pcVar23 + 0x72fb8)" (* "*") (cast_expression "(int **)(pcVar23 + 0x72fb8)" (( "(") (type_descriptor "int **" (primitive_type "int") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x72fb8)" (( "(") (binary_expression "pcVar23 + 0x72fb8" (identifier "pcVar23") (+ "+") (number_literal "0x72fb8")) () ")")))))) () ")")) (compound_statement "{\n    return;\n  }" ({ "{") (return_statement "return;" (return "return") (; ";")) (} "}"))) (expression_statement "pcVar23 = *(code **)(pcVar23 + 0x72c58);" (assignment_expression "pcVar23 = *(code **)(pcVar23 + 0x72c58)" (identifier "pcVar23") (= "=") (pointer_expression "*(code **)(pcVar23 + 0x72c58)" (* "*") (cast_expression "(code **)(pcVar23 + 0x72c58)" (( "(") (type_descriptor "code **" (type_identifier "code") (abstract_pointer_declarator "**" (* "*") (abstract_pointer_declarator "*" (* "*")))) () ")") (parenthesized_expression "(pcVar23 + 0x72c58)" (( "(") (binary_expression "pcVar23 + 0x72c58" (identifier "pcVar23") (+ "+") (number_literal "0x72c58")) () ")"))))) (; ";")) (expression_statement "iVar20 = iStack_104;" (assignment_expression "iVar20 = iStack_104" (identifier "iVar20") (= "=") (identifier "iStack_104")) (; ";")) (expression_statement "(*pcVar23)();" (call_expression "(*pcVar23)()" (parenthesized_expression "(*pcVar23)" (( "(") (pointer_expression "*pcVar23" (* "*") (identifier "pcVar23")) () ")")) (argument_list "()" (( "(") () ")"))) (; ";")) (if_statement "if (iVar11 == 0) {\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }\n  else {\n    pcVar10 = (code *)0x0;\n  }" (if "if") (parenthesized_expression "(iVar11 == 0)" (( "(") (binary_expression "iVar11 == 0" (identifier "iVar11") (== "==") (number_literal "0")) () ")")) (compound_statement "{\n    if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }\n  }" ({ "{") (if_statement "if (*(int *)(iVar20 + 0x1a4) != 0) {\n      pcVar10 = (code *)0x0;\n    }" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 0x1a4) != 0)" (( "(") (binary_expression "*(int *)(iVar20 + 0x1a4) != 0" (pointer_expression "*(int *)(iVar20 + 0x1a4)" (* "*") (cast_expression "(int *)(iVar20 + 0x1a4)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x1a4)" (( "(") (binary_expression "iVar20 + 0x1a4" (identifier "iVar20") (+ "+") (number_literal "0x1a4")) () ")")))) (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n      pcVar10 = (code *)0x0;\n    }" ({ "{") (expression_statement "pcVar10 = (code *)0x0;" (assignment_expression "pcVar10 = (code *)0x0" (identifier "pcVar10") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}"))) (} "}")) (else_clause "else {\n    pcVar10 = (code *)0x0;\n  }" (else "else") (compound_statement "{\n    pcVar10 = (code *)0x0;\n  }" ({ "{") (expression_statement "pcVar10 = (code *)0x0;" (assignment_expression "pcVar10 = (code *)0x0" (identifier "pcVar10") (= "=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) (; ";")) (} "}")))) (expression_statement "iVar16 = (iVar13 - iVar11) + 1;" (assignment_expression "iVar16 = (iVar13 - iVar11) + 1" (identifier "iVar16") (= "=") (binary_expression "(iVar13 - iVar11) + 1" (parenthesized_expression "(iVar13 - iVar11)" (( "(") (binary_expression "iVar13 - iVar11" (identifier "iVar13") (- "-") (identifier "iVar11")) () ")")) (+ "+") (number_literal "1"))) (; ";")) (if_statement "if (param_4 < 0) {\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }\n  else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }" (if "if") (parenthesized_expression "(param_4 < 0)" (( "(") (binary_expression "param_4 < 0" (identifier "param_4") (< "<") (number_literal "0")) () ")")) (compound_statement "{\n    if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }\n  }" ({ "{") (if_statement "if (-param_4 <= iVar16) {\n      iVar16 = -param_4;\n    }" (if "if") (parenthesized_expression "(-param_4 <= iVar16)" (( "(") (binary_expression "-param_4 <= iVar16" (unary_expression "-param_4" (- "-") (identifier "param_4")) (<= "<=") (identifier "iVar16")) () ")")) (compound_statement "{\n      iVar16 = -param_4;\n    }" ({ "{") (expression_statement "iVar16 = -param_4;" (assignment_expression "iVar16 = -param_4" (identifier "iVar16") (= "=") (unary_expression "-param_4" (- "-") (identifier "param_4"))) (; ";")) (} "}"))) (expression_statement "iVar18 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar18 = *(int *)(pcVar23 + 0x722f0)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(pcVar23 + 0x722f0)" (* "*") (cast_expression "(int *)(pcVar23 + 0x722f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x722f0)" (( "(") (binary_expression "pcVar23 + 0x722f0" (identifier "pcVar23") (+ "+") (number_literal "0x722f0")) () ")"))))) (; ";")) (expression_statement "iVar2 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar2 = *(int *)(pcVar23 + 0x722f0)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pcVar23 + 0x722f0)" (* "*") (cast_expression "(int *)(pcVar23 + 0x722f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x722f0)" (( "(") (binary_expression "pcVar23 + 0x722f0" (identifier "pcVar23") (+ "+") (number_literal "0x722f0")) () ")"))))) (; ";")) (for_statement "for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "0 < iVar16" (number_literal "0") (< "<") (identifier "iVar16")) (; ";") (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);\n      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n      if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }\n      *puVar4 = 0;\n      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);\n      iVar9 = *(int *)(iVar20 + 0xe54);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }\n      iVar9 = *(int *)(iVar20 + 0xe5c);\n      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }\n    }" ({ "{") (expression_statement "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);" (assignment_expression "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13)" (identifier "puVar4") (= "=") (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "delpos234(*(undefined4 *)(iVar20 + 8),iVar13)" (identifier "delpos234") (argument_list "(*(undefined4 *)(iVar20 + 8),iVar13)" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 8)" (( "(") (binary_expression "iVar20 + 8" (identifier "iVar20") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "iVar13") () ")"))))) (; ";")) (expression_statement "(*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));" (call_expression "(*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (parenthesized_expression "(*(code *)(iVar18 + -0x6c2c))" (( "(") (pointer_expression "*(code *)(iVar18 + -0x6c2c)" (* "*") (cast_expression "(code *)(iVar18 + -0x6c2c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + -0x6c2c)" (( "(") (binary_expression "iVar18 + -0x6c2c" (identifier "iVar18") (+ "+") (number_literal "-0x6c2c")) () ")")))) () ")")) (argument_list "(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (( "(") (identifier "iVar20") (, ",") (identifier "puVar4") (, ",") (pointer_expression "*(undefined4 *)(iVar20 + 300)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 300)" (( "(") (binary_expression "iVar20 + 300" (identifier "iVar20") (+ "+") (number_literal "300")) () ")")))) () ")"))) (; ";")) (if_statement "if (0 < *(int *)(iVar20 + 300)) {\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar20 + 300))" (( "(") (binary_expression "0 < *(int *)(iVar20 + 300)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar20 + 300)" (* "*") (cast_expression "(int *)(iVar20 + 300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 300)" (( "(") (binary_expression "iVar20 + 300" (identifier "iVar20") (+ "+") (number_literal "300")) () ")"))))) () ")")) (compound_statement "{\n        iVar9 = 0;\n        do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));\n      }" ({ "{") (expression_statement "iVar9 = 0;" (assignment_expression "iVar9 = 0" (identifier "iVar9") (= "=") (number_literal "0")) (; ";")) (do_statement "do {\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        } while (iVar9 < *(int *)(iVar20 + 300));" (do "do") (compound_statement "{\n          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);\n          iVar9 = iVar9 + 1;\n        }" ({ "{") (expression_statement "(*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);" (call_expression "(*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54)" (parenthesized_expression "(*(code *)(iVar2 + -0x76f0))" (( "(") (pointer_expression "*(code *)(iVar2 + -0x76f0)" (* "*") (cast_expression "(code *)(iVar2 + -0x76f0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + -0x76f0)" (( "(") (binary_expression "iVar2 + -0x76f0" (identifier "iVar2") (+ "+") (number_literal "-0x76f0")) () ")")))) () ")")) (argument_list "(puVar4,iVar9,iVar20 + 0x54)" (( "(") (identifier "puVar4") (, ",") (identifier "iVar9") (, ",") (binary_expression "iVar20 + 0x54" (identifier "iVar20") (+ "+") (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 *)(iVar20 + 300))" (( "(") (binary_expression "iVar9 < *(int *)(iVar20 + 300)" (identifier "iVar9") (< "<") (pointer_expression "*(int *)(iVar20 + 300)" (* "*") (cast_expression "(int *)(iVar20 + 300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 300)" (( "(") (binary_expression "iVar20 + 300" (identifier "iVar20") (+ "+") (number_literal "300")) () ")"))))) () ")")) (; ";")) (} "}"))) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11)" (identifier "addpos234") (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar11)" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 8)" (( "(") (binary_expression "iVar20 + 8" (identifier "iVar20") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "puVar4") (, ",") (identifier "iVar11") () ")"))) (; ";")) (expression_statement "iVar9 = *(int *)(iVar20 + 0xe54);" (assignment_expression "iVar9 = *(int *)(iVar20 + 0xe54)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar20 + 0xe54)" (* "*") (cast_expression "(int *)(iVar20 + 0xe54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe54)" (( "(") (binary_expression "iVar20 + 0xe54" (identifier "iVar20") (+ "+") (number_literal "0xe54")) () ")"))))) (; ";")) (if_statement "if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }" (if "if") (parenthesized_expression "((iVar11 <= iVar9) && (iVar9 <= iVar13))" (( "(") (binary_expression "(iVar11 <= iVar9) && (iVar9 <= iVar13)" (parenthesized_expression "(iVar11 <= iVar9)" (( "(") (binary_expression "iVar11 <= iVar9" (identifier "iVar11") (<= "<=") (identifier "iVar9")) () ")")) (&& "&&") (parenthesized_expression "(iVar9 <= iVar13)" (( "(") (binary_expression "iVar9 <= iVar13" (identifier "iVar9") (<= "<=") (identifier "iVar13")) () ")"))) () ")")) (compound_statement "{\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }\n      }" ({ "{") (if_statement "if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }" (if "if") (parenthesized_expression "(iVar13 < iVar9 + 1)" (( "(") (binary_expression "iVar13 < iVar9 + 1" (identifier "iVar13") (< "<") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n          *(int *)(iVar20 + 0xe54) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe58) = 0;\n        }" ({ "{") (expression_statement "*(int *)(iVar20 + 0xe54) = iVar13 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar13 + 1" (pointer_expression "*(int *)(iVar20 + 0xe54)" (* "*") (cast_expression "(int *)(iVar20 + 0xe54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe54)" (( "(") (binary_expression "iVar20 + 0xe54" (identifier "iVar20") (+ "+") (number_literal "0xe54")) () ")")))) (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe58)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xe58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe58)" (( "(") (binary_expression "iVar20 + 0xe58" (identifier "iVar20") (+ "+") (number_literal "0xe58")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }" (else "else") (compound_statement "{\n          *(int *)(iVar20 + 0xe54) = iVar9 + 1;\n        }" ({ "{") (expression_statement "*(int *)(iVar20 + 0xe54) = iVar9 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar9 + 1" (pointer_expression "*(int *)(iVar20 + 0xe54)" (* "*") (cast_expression "(int *)(iVar20 + 0xe54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe54)" (( "(") (binary_expression "iVar20 + 0xe54" (identifier "iVar20") (+ "+") (number_literal "0xe54")) () ")")))) (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar9 = *(int *)(iVar20 + 0xe5c);" (assignment_expression "iVar9 = *(int *)(iVar20 + 0xe5c)" (identifier "iVar9") (= "=") (pointer_expression "*(int *)(iVar20 + 0xe5c)" (* "*") (cast_expression "(int *)(iVar20 + 0xe5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe5c)" (( "(") (binary_expression "iVar20 + 0xe5c" (identifier "iVar20") (+ "+") (number_literal "0xe5c")) () ")"))))) (; ";")) (if_statement "if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }" (if "if") (parenthesized_expression "((iVar11 <= iVar9) && (iVar9 <= iVar13))" (( "(") (binary_expression "(iVar11 <= iVar9) && (iVar9 <= iVar13)" (parenthesized_expression "(iVar11 <= iVar9)" (( "(") (binary_expression "iVar11 <= iVar9" (identifier "iVar11") (<= "<=") (identifier "iVar9")) () ")")) (&& "&&") (parenthesized_expression "(iVar9 <= iVar13)" (( "(") (binary_expression "iVar9 <= iVar13" (identifier "iVar9") (<= "<=") (identifier "iVar13")) () ")"))) () ")")) (compound_statement "{\n        if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }\n      }" ({ "{") (if_statement "if (iVar13 < iVar9 + 1) {\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }\n        else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }" (if "if") (parenthesized_expression "(iVar13 < iVar9 + 1)" (( "(") (binary_expression "iVar13 < iVar9 + 1" (identifier "iVar13") (< "<") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) () ")")) (compound_statement "{\n          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;\n          *(undefined4 *)(iVar20 + 0xe60) = 0;\n        }" ({ "{") (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar13 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar13 + 1" (pointer_expression "*(int *)(iVar20 + 0xe5c)" (* "*") (cast_expression "(int *)(iVar20 + 0xe5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe5c)" (( "(") (binary_expression "iVar20 + 0xe5c" (identifier "iVar20") (+ "+") (number_literal "0xe5c")) () ")")))) (= "=") (binary_expression "iVar13 + 1" (identifier "iVar13") (+ "+") (number_literal "1"))) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe60)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xe60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe60)" (( "(") (binary_expression "iVar20 + 0xe60" (identifier "iVar20") (+ "+") (number_literal "0xe60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }" (else "else") (compound_statement "{\n          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;\n        }" ({ "{") (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar9 + 1;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar9 + 1" (pointer_expression "*(int *)(iVar20 + 0xe5c)" (* "*") (cast_expression "(int *)(iVar20 + 0xe5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe5c)" (( "(") (binary_expression "iVar20 + 0xe5c" (identifier "iVar20") (+ "+") (number_literal "0xe5c")) () ")")))) (= "=") (binary_expression "iVar9 + 1" (identifier "iVar9") (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (} "}"))) (} "}"))) (} "}")) (else_clause "else {\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }" (else "else") (compound_statement "{\n    if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }\n    iVar2 = *(int *)(pcVar23 + 0x722f0);\n    iVar18 = *(int *)(pcVar23 + 0x722f0);\n    for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }\n  }" ({ "{") (if_statement "if (param_4 < iVar16) {\n      iVar16 = param_4;\n    }" (if "if") (parenthesized_expression "(param_4 < iVar16)" (( "(") (binary_expression "param_4 < iVar16" (identifier "param_4") (< "<") (identifier "iVar16")) () ")")) (compound_statement "{\n      iVar16 = param_4;\n    }" ({ "{") (expression_statement "iVar16 = param_4;" (assignment_expression "iVar16 = param_4" (identifier "iVar16") (= "=") (identifier "param_4")) (; ";")) (} "}"))) (expression_statement "iVar2 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar2 = *(int *)(pcVar23 + 0x722f0)" (identifier "iVar2") (= "=") (pointer_expression "*(int *)(pcVar23 + 0x722f0)" (* "*") (cast_expression "(int *)(pcVar23 + 0x722f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x722f0)" (( "(") (binary_expression "pcVar23 + 0x722f0" (identifier "pcVar23") (+ "+") (number_literal "0x722f0")) () ")"))))) (; ";")) (expression_statement "iVar18 = *(int *)(pcVar23 + 0x722f0);" (assignment_expression "iVar18 = *(int *)(pcVar23 + 0x722f0)" (identifier "iVar18") (= "=") (pointer_expression "*(int *)(pcVar23 + 0x722f0)" (* "*") (cast_expression "(int *)(pcVar23 + 0x722f0)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(pcVar23 + 0x722f0)" (( "(") (binary_expression "pcVar23 + 0x722f0" (identifier "pcVar23") (+ "+") (number_literal "0x722f0")) () ")"))))) (; ";")) (for_statement "for (; 0 < iVar16; iVar16 = iVar16 + -1) {\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }" (for "for") (( "(") (; ";") (binary_expression "0 < iVar16" (number_literal "0") (< "<") (identifier "iVar16")) (; ";") (assignment_expression "iVar16 = iVar16 + -1" (identifier "iVar16") (= "=") (binary_expression "iVar16 + -1" (identifier "iVar16") (+ "+") (number_literal "-1"))) () ")") (compound_statement "{\n      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);\n      iVar9 = iVar11;\n      if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }\n    }" ({ "{") (expression_statement "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);" (assignment_expression "puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11)" (identifier "puVar4") (= "=") (cast_expression "(undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11)" (( "(") (type_descriptor "undefined2 *" (type_identifier "undefined2") (abstract_pointer_declarator "*" (* "*"))) () ")") (call_expression "delpos234(*(undefined4 *)(iVar20 + 8),iVar11)" (identifier "delpos234") (argument_list "(*(undefined4 *)(iVar20 + 8),iVar11)" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 8)" (( "(") (binary_expression "iVar20 + 8" (identifier "iVar20") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "iVar11") () ")"))))) (; ";")) (expression_statement "iVar9 = iVar11;" (assignment_expression "iVar9 = iVar11" (identifier "iVar9") (= "=") (identifier "iVar11")) (; ";")) (if_statement "if (pcVar10 == (code *)0x0) {\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }\n      else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" (if "if") (parenthesized_expression "(pcVar10 == (code *)0x0)" (( "(") (binary_expression "pcVar10 == (code *)0x0" (identifier "pcVar10") (== "==") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" ({ "{") (expression_statement "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));" (call_expression "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (parenthesized_expression "(*(code *)(iVar2 + -0x6c2c))" (( "(") (pointer_expression "*(code *)(iVar2 + -0x6c2c)" (* "*") (cast_expression "(code *)(iVar2 + -0x6c2c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + -0x6c2c)" (( "(") (binary_expression "iVar2 + -0x6c2c" (identifier "iVar2") (+ "+") (number_literal "-0x6c2c")) () ")")))) () ")")) (argument_list "(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (( "(") (identifier "iVar20") (, ",") (identifier "puVar4") (, ",") (pointer_expression "*(undefined4 *)(iVar20 + 300)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 300)" (( "(") (binary_expression "iVar20 + 300" (identifier "iVar20") (+ "+") (number_literal "300")) () ")")))) () ")"))) (; ";")) (if_statement "if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;" (if "if") (parenthesized_expression "(0 < *(int *)(iVar20 + 300))" (( "(") (binary_expression "0 < *(int *)(iVar20 + 300)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar20 + 300)" (* "*") (cast_expression "(int *)(iVar20 + 300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 300)" (( "(") (binary_expression "iVar20 + 300" (identifier "iVar20") (+ "+") (number_literal "300")) () ")"))))) () ")")) (goto_statement "goto LAB_0004b730;" (goto "goto") (statement_identifier "LAB_0004b730") (; ";"))) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" (identifier "addpos234") (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 8)" (( "(") (binary_expression "iVar20 + 8" (identifier "iVar20") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "puVar4") (, ",") (identifier "iVar13") () ")"))) (; ";")) (labeled_statement "LAB_0004b5f8:\n        iVar5 = *(int *)(iVar20 + 0xe48);" (statement_identifier "LAB_0004b5f8") (: ":") (expression_statement "iVar5 = *(int *)(iVar20 + 0xe48);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe48)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar20 + 0xe48)" (* "*") (cast_expression "(int *)(iVar20 + 0xe48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe48)" (( "(") (binary_expression "iVar20 + 0xe48" (identifier "iVar20") (+ "+") (number_literal "0xe48")) () ")"))))) (; ";"))) (} "}")) (else_clause "else {\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" (else "else") (compound_statement "{\n        if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }\n        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));\n        if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }\nLAB_0004b730:\n        iVar5 = 0;\n        do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));\n        *puVar4 = 0;\n        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\n        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;\n        iVar5 = *(int *)(iVar20 + 0xe48);\n      }" ({ "{") (if_statement "if (0 < *(int *)(iVar20 + 0x130)) {\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }" (if "if") (parenthesized_expression "(0 < *(int *)(iVar20 + 0x130))" (( "(") (binary_expression "0 < *(int *)(iVar20 + 0x130)" (number_literal "0") (< "<") (pointer_expression "*(int *)(iVar20 + 0x130)" (* "*") (cast_expression "(int *)(iVar20 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x130)" (( "(") (binary_expression "iVar20 + 0x130" (identifier "iVar20") (+ "+") (number_literal "0x130")) () ")"))))) () ")")) (compound_statement "{\n          iVar5 = count234(*(undefined4 *)(iVar20 + 4));\n          if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }\n          uVar15 = *(undefined4 *)(iVar20 + 4);\n          uVar3 = FUN_0004b15c(puVar4);\n          addpos234(uVar15,uVar3,iVar5);\n          iVar5 = *(int *)(iVar20 + 0x10);\n          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }\n        }" ({ "{") (expression_statement "iVar5 = count234(*(undefined4 *)(iVar20 + 4));" (assignment_expression "iVar5 = count234(*(undefined4 *)(iVar20 + 4))" (identifier "iVar5") (= "=") (call_expression "count234(*(undefined4 *)(iVar20 + 4))" (identifier "count234") (argument_list "(*(undefined4 *)(iVar20 + 4))" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 4)" (( "(") (binary_expression "iVar20 + 4" (identifier "iVar20") (+ "+") (number_literal "4")) () ")")))) () ")")))) (; ";")) (if_statement "if (*(int *)(iVar20 + 0x130) == iVar5) {\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }\n          else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 0x130) == iVar5)" (( "(") (binary_expression "*(int *)(iVar20 + 0x130) == iVar5" (pointer_expression "*(int *)(iVar20 + 0x130)" (* "*") (cast_expression "(int *)(iVar20 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x130)" (( "(") (binary_expression "iVar20 + 0x130" (identifier "iVar20") (+ "+") (number_literal "0x130")) () ")")))) (== "==") (identifier "iVar5")) () ")")) (compound_statement "{\n            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);\n            safefree(uVar3);\n            iVar5 = iVar5 + -1;\n          }" ({ "{") (expression_statement "uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);" (assignment_expression "uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0)" (identifier "uVar3") (= "=") (call_expression "delpos234(*(undefined4 *)(iVar20 + 4),0)" (identifier "delpos234") (argument_list "(*(undefined4 *)(iVar20 + 4),0)" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 4)" (( "(") (binary_expression "iVar20 + 4" (identifier "iVar20") (+ "+") (number_literal "4")) () ")")))) (, ",") (number_literal "0") () ")")))) (; ";")) (expression_statement "safefree(uVar3);" (call_expression "safefree(uVar3)" (identifier "safefree") (argument_list "(uVar3)" (( "(") (identifier "uVar3") () ")"))) (; ";")) (expression_statement "iVar5 = iVar5 + -1;" (assignment_expression "iVar5 = iVar5 + -1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (} "}")) (else_clause "else {\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }" (else "else") (compound_statement "{\n            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;\n          }" ({ "{") (expression_statement "*(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;" (assignment_expression "*(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1" (pointer_expression "*(int *)(iVar20 + 0x14)" (* "*") (cast_expression "(int *)(iVar20 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x14)" (( "(") (binary_expression "iVar20 + 0x14" (identifier "iVar20") (+ "+") (number_literal "0x14")) () ")")))) (= "=") (binary_expression "*(int *)(iVar20 + 0x14) + 1" (pointer_expression "*(int *)(iVar20 + 0x14)" (* "*") (cast_expression "(int *)(iVar20 + 0x14)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x14)" (( "(") (binary_expression "iVar20 + 0x14" (identifier "iVar20") (+ "+") (number_literal "0x14")) () ")")))) (+ "+") (number_literal "1"))) (; ";")) (} "}")))) (expression_statement "uVar15 = *(undefined4 *)(iVar20 + 4);" (assignment_expression "uVar15 = *(undefined4 *)(iVar20 + 4)" (identifier "uVar15") (= "=") (pointer_expression "*(undefined4 *)(iVar20 + 4)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 4)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 4)" (( "(") (binary_expression "iVar20 + 4" (identifier "iVar20") (+ "+") (number_literal "4")) () ")"))))) (; ";")) (expression_statement "uVar3 = FUN_0004b15c(puVar4);" (assignment_expression "uVar3 = FUN_0004b15c(puVar4)" (identifier "uVar3") (= "=") (call_expression "FUN_0004b15c(puVar4)" (identifier "FUN_0004b15c") (argument_list "(puVar4)" (( "(") (identifier "puVar4") () ")")))) (; ";")) (expression_statement "addpos234(uVar15,uVar3,iVar5);" (call_expression "addpos234(uVar15,uVar3,iVar5)" (identifier "addpos234") (argument_list "(uVar15,uVar3,iVar5)" (( "(") (identifier "uVar15") (, ",") (identifier "uVar3") (, ",") (identifier "iVar5") () ")"))) (; ";")) (expression_statement "iVar5 = *(int *)(iVar20 + 0x10);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0x10)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar20 + 0x10)" (* "*") (cast_expression "(int *)(iVar20 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x10)" (( "(") (binary_expression "iVar20 + 0x10" (identifier "iVar20") (+ "+") (number_literal "0x10")) () ")"))))) (; ";")) (if_statement "if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }" (if "if") (parenthesized_expression "((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0))" (( "(") (binary_expression "(-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)" (parenthesized_expression "(-*(int *)(iVar20 + 0x130) < iVar5)" (( "(") (binary_expression "-*(int *)(iVar20 + 0x130) < iVar5" (unary_expression "-*(int *)(iVar20 + 0x130)" (- "-") (pointer_expression "*(int *)(iVar20 + 0x130)" (* "*") (cast_expression "(int *)(iVar20 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x130)" (( "(") (binary_expression "iVar20 + 0x130" (identifier "iVar20") (+ "+") (number_literal "0x130")) () ")"))))) (< "<") (identifier "iVar5")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 < 0)" (( "(") (binary_expression "iVar5 < 0" (identifier "iVar5") (< "<") (number_literal "0")) () ")"))) () ")")) (compound_statement "{\n            *(int *)(iVar20 + 0x10) = iVar5 + -1;\n          }" ({ "{") (expression_statement "*(int *)(iVar20 + 0x10) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0x10) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0x10)" (* "*") (cast_expression "(int *)(iVar20 + 0x10)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x10)" (( "(") (binary_expression "iVar20 + 0x10" (identifier "iVar20") (+ "+") (number_literal "0x10")) () ")")))) (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (} "}"))) (} "}"))) (expression_statement "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));" (call_expression "(*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (parenthesized_expression "(*(code *)(iVar2 + -0x6c2c))" (( "(") (pointer_expression "*(code *)(iVar2 + -0x6c2c)" (* "*") (cast_expression "(code *)(iVar2 + -0x6c2c)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar2 + -0x6c2c)" (( "(") (binary_expression "iVar2 + -0x6c2c" (identifier "iVar2") (+ "+") (number_literal "-0x6c2c")) () ")")))) () ")")) (argument_list "(iVar20,puVar4,*(undefined4 *)(iVar20 + 300))" (( "(") (identifier "iVar20") (, ",") (identifier "puVar4") (, ",") (pointer_expression "*(undefined4 *)(iVar20 + 300)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 300)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 300)" (( "(") (binary_expression "iVar20 + 300" (identifier "iVar20") (+ "+") (number_literal "300")) () ")")))) () ")"))) (; ";")) (if_statement "if (*(int *)(iVar20 + 300) < 1) {\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }" (if "if") (parenthesized_expression "(*(int *)(iVar20 + 300) < 1)" (( "(") (binary_expression "*(int *)(iVar20 + 300) < 1" (pointer_expression "*(int *)(iVar20 + 300)" (* "*") (cast_expression "(int *)(iVar20 + 300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 300)" (( "(") (binary_expression "iVar20 + 300" (identifier "iVar20") (+ "+") (number_literal "300")) () ")")))) (< "<") (number_literal "1")) () ")")) (compound_statement "{\n          *puVar4 = 0;\n          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);\nLAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);\n          goto LAB_0004b5f8;\n        }" ({ "{") (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" (identifier "addpos234") (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 8)" (( "(") (binary_expression "iVar20 + 8" (identifier "iVar20") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "puVar4") (, ",") (identifier "iVar13") () ")"))) (; ";")) (labeled_statement "LAB_0004b5f0:\n          iVar9 = -*(int *)(iVar20 + 0x130);" (statement_identifier "LAB_0004b5f0") (: ":") (expression_statement "iVar9 = -*(int *)(iVar20 + 0x130);" (assignment_expression "iVar9 = -*(int *)(iVar20 + 0x130)" (identifier "iVar9") (= "=") (unary_expression "-*(int *)(iVar20 + 0x130)" (- "-") (pointer_expression "*(int *)(iVar20 + 0x130)" (* "*") (cast_expression "(int *)(iVar20 + 0x130)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0x130)" (( "(") (binary_expression "iVar20 + 0x130" (identifier "iVar20") (+ "+") (number_literal "0x130")) () ")")))))) (; ";"))) (goto_statement "goto LAB_0004b5f8;" (goto "goto") (statement_identifier "LAB_0004b5f8") (; ";")) (} "}"))) (labeled_statement "LAB_0004b730:\n        iVar5 = 0;" (statement_identifier "LAB_0004b730") (: ":") (expression_statement "iVar5 = 0;" (assignment_expression "iVar5 = 0" (identifier "iVar5") (= "=") (number_literal "0")) (; ";"))) (do_statement "do {\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        } while (iVar5 < *(int *)(iVar20 + 300));" (do "do") (compound_statement "{\n          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);\n          iVar5 = iVar5 + 1;\n        }" ({ "{") (expression_statement "(*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);" (call_expression "(*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54)" (parenthesized_expression "(*(code *)(iVar18 + -0x76f0))" (( "(") (pointer_expression "*(code *)(iVar18 + -0x76f0)" (* "*") (cast_expression "(code *)(iVar18 + -0x76f0)" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar18 + -0x76f0)" (( "(") (binary_expression "iVar18 + -0x76f0" (identifier "iVar18") (+ "+") (number_literal "-0x76f0")) () ")")))) () ")")) (argument_list "(puVar4,iVar5,iVar20 + 0x54)" (( "(") (identifier "puVar4") (, ",") (identifier "iVar5") (, ",") (binary_expression "iVar20 + 0x54" (identifier "iVar20") (+ "+") (number_literal "0x54")) () ")"))) (; ";")) (expression_statement "iVar5 = iVar5 + 1;" (assignment_expression "iVar5 = iVar5 + 1" (identifier "iVar5") (= "=") (binary_expression "iVar5 + 1" (identifier "iVar5") (+ "+") (number_literal "1"))) (; ";")) (} "}")) (while "while") (parenthesized_expression "(iVar5 < *(int *)(iVar20 + 300))" (( "(") (binary_expression "iVar5 < *(int *)(iVar20 + 300)" (identifier "iVar5") (< "<") (pointer_expression "*(int *)(iVar20 + 300)" (* "*") (cast_expression "(int *)(iVar20 + 300)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 300)" (( "(") (binary_expression "iVar20 + 300" (identifier "iVar20") (+ "+") (number_literal "300")) () ")"))))) () ")")) (; ";")) (expression_statement "*puVar4 = 0;" (assignment_expression "*puVar4 = 0" (pointer_expression "*puVar4" (* "*") (identifier "puVar4")) (= "=") (number_literal "0")) (; ";")) (expression_statement "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);" (call_expression "addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" (identifier "addpos234") (argument_list "(*(undefined4 *)(iVar20 + 8),puVar4,iVar13)" (( "(") (pointer_expression "*(undefined4 *)(iVar20 + 8)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 8)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 8)" (( "(") (binary_expression "iVar20 + 8" (identifier "iVar20") (+ "+") (number_literal "8")) () ")")))) (, ",") (identifier "puVar4") (, ",") (identifier "iVar13") () ")"))) (; ";")) (if_statement "if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;" (if "if") (parenthesized_expression "(pcVar10 != (code *)0x0)" (( "(") (binary_expression "pcVar10 != (code *)0x0" (identifier "pcVar10") (!= "!=") (cast_expression "(code *)0x0" (( "(") (type_descriptor "code *" (type_identifier "code") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (goto_statement "goto LAB_0004b5f0;" (goto "goto") (statement_identifier "LAB_0004b5f0") (; ";"))) (expression_statement "iVar5 = *(int *)(iVar20 + 0xe48);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe48)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar20 + 0xe48)" (* "*") (cast_expression "(int *)(iVar20 + 0xe48)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe48)" (( "(") (binary_expression "iVar20 + 0xe48" (identifier "iVar20") (+ "+") (number_literal "0xe48")) () ")"))))) (; ";")) (} "}")))) (if_statement "if (iVar5 != 0) {\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }" (if "if") (parenthesized_expression "(iVar5 != 0)" (( "(") (binary_expression "iVar5 != 0" (identifier "iVar5") (!= "!=") (number_literal "0")) () ")")) (compound_statement "{\n        iVar5 = *(int *)(iVar20 + 0xe54);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe5c);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }\n        iVar5 = *(int *)(iVar20 + 0xe64);\n        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }\n      }" ({ "{") (expression_statement "iVar5 = *(int *)(iVar20 + 0xe54);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe54)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar20 + 0xe54)" (* "*") (cast_expression "(int *)(iVar20 + 0xe54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe54)" (( "(") (binary_expression "iVar20 + 0xe54" (identifier "iVar20") (+ "+") (number_literal "0xe54")) () ")"))))) (; ";")) (if_statement "if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }" (if "if") (parenthesized_expression "((iVar9 <= iVar5) && (iVar5 <= iVar13))" (( "(") (binary_expression "(iVar9 <= iVar5) && (iVar5 <= iVar13)" (parenthesized_expression "(iVar9 <= iVar5)" (( "(") (binary_expression "iVar9 <= iVar5" (identifier "iVar9") (<= "<=") (identifier "iVar5")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 <= iVar13)" (( "(") (binary_expression "iVar5 <= iVar13" (identifier "iVar5") (<= "<=") (identifier "iVar13")) () ")"))) () ")")) (compound_statement "{\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }\n        }" ({ "{") (if_statement "if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }" (if "if") (parenthesized_expression "(iVar5 + -1 < iVar9)" (( "(") (binary_expression "iVar5 + -1 < iVar9" (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1")) (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n            *(int *)(iVar20 + 0xe54) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe58) = 0;\n          }" ({ "{") (expression_statement "*(int *)(iVar20 + 0xe54) = iVar9;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar9" (pointer_expression "*(int *)(iVar20 + 0xe54)" (* "*") (cast_expression "(int *)(iVar20 + 0xe54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe54)" (( "(") (binary_expression "iVar20 + 0xe54" (identifier "iVar20") (+ "+") (number_literal "0xe54")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0xe58) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe58) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe58)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xe58)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe58)" (( "(") (binary_expression "iVar20 + 0xe58" (identifier "iVar20") (+ "+") (number_literal "0xe58")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }" (else "else") (compound_statement "{\n            *(int *)(iVar20 + 0xe54) = iVar5 + -1;\n          }" ({ "{") (expression_statement "*(int *)(iVar20 + 0xe54) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0xe54) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0xe54)" (* "*") (cast_expression "(int *)(iVar20 + 0xe54)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe54)" (( "(") (binary_expression "iVar20 + 0xe54" (identifier "iVar20") (+ "+") (number_literal "0xe54")) () ")")))) (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar5 = *(int *)(iVar20 + 0xe5c);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe5c)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar20 + 0xe5c)" (* "*") (cast_expression "(int *)(iVar20 + 0xe5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe5c)" (( "(") (binary_expression "iVar20 + 0xe5c" (identifier "iVar20") (+ "+") (number_literal "0xe5c")) () ")"))))) (; ";")) (if_statement "if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }" (if "if") (parenthesized_expression "((iVar9 <= iVar5) && (iVar5 <= iVar13))" (( "(") (binary_expression "(iVar9 <= iVar5) && (iVar5 <= iVar13)" (parenthesized_expression "(iVar9 <= iVar5)" (( "(") (binary_expression "iVar9 <= iVar5" (identifier "iVar9") (<= "<=") (identifier "iVar5")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 <= iVar13)" (( "(") (binary_expression "iVar5 <= iVar13" (identifier "iVar5") (<= "<=") (identifier "iVar13")) () ")"))) () ")")) (compound_statement "{\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }\n        }" ({ "{") (if_statement "if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }" (if "if") (parenthesized_expression "(iVar5 + -1 < iVar9)" (( "(") (binary_expression "iVar5 + -1 < iVar9" (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1")) (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n            *(int *)(iVar20 + 0xe5c) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe60) = 0;\n          }" ({ "{") (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar9;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar9" (pointer_expression "*(int *)(iVar20 + 0xe5c)" (* "*") (cast_expression "(int *)(iVar20 + 0xe5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe5c)" (( "(") (binary_expression "iVar20 + 0xe5c" (identifier "iVar20") (+ "+") (number_literal "0xe5c")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0xe60) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe60) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe60)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xe60)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe60)" (( "(") (binary_expression "iVar20 + 0xe60" (identifier "iVar20") (+ "+") (number_literal "0xe60")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }" (else "else") (compound_statement "{\n            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;\n          }" ({ "{") (expression_statement "*(int *)(iVar20 + 0xe5c) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0xe5c) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0xe5c)" (* "*") (cast_expression "(int *)(iVar20 + 0xe5c)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe5c)" (( "(") (binary_expression "iVar20 + 0xe5c" (identifier "iVar20") (+ "+") (number_literal "0xe5c")) () ")")))) (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1"))) (; ";")) (} "}")))) (} "}"))) (expression_statement "iVar5 = *(int *)(iVar20 + 0xe64);" (assignment_expression "iVar5 = *(int *)(iVar20 + 0xe64)" (identifier "iVar5") (= "=") (pointer_expression "*(int *)(iVar20 + 0xe64)" (* "*") (cast_expression "(int *)(iVar20 + 0xe64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe64)" (( "(") (binary_expression "iVar20 + 0xe64" (identifier "iVar20") (+ "+") (number_literal "0xe64")) () ")"))))) (; ";")) (if_statement "if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }" (if "if") (parenthesized_expression "((iVar9 <= iVar5) && (iVar5 <= iVar13))" (( "(") (binary_expression "(iVar9 <= iVar5) && (iVar5 <= iVar13)" (parenthesized_expression "(iVar9 <= iVar5)" (( "(") (binary_expression "iVar9 <= iVar5" (identifier "iVar9") (<= "<=") (identifier "iVar5")) () ")")) (&& "&&") (parenthesized_expression "(iVar5 <= iVar13)" (( "(") (binary_expression "iVar5 <= iVar13" (identifier "iVar5") (<= "<=") (identifier "iVar13")) () ")"))) () ")")) (compound_statement "{\n          if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }\n        }" ({ "{") (if_statement "if (iVar5 + -1 < iVar9) {\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }\n          else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }" (if "if") (parenthesized_expression "(iVar5 + -1 < iVar9)" (( "(") (binary_expression "iVar5 + -1 < iVar9" (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (number_literal "-1")) (< "<") (identifier "iVar9")) () ")")) (compound_statement "{\n            *(int *)(iVar20 + 0xe64) = iVar9;\n            *(undefined4 *)(iVar20 + 0xe68) = 0;\n          }" ({ "{") (expression_statement "*(int *)(iVar20 + 0xe64) = iVar9;" (assignment_expression "*(int *)(iVar20 + 0xe64) = iVar9" (pointer_expression "*(int *)(iVar20 + 0xe64)" (* "*") (cast_expression "(int *)(iVar20 + 0xe64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe64)" (( "(") (binary_expression "iVar20 + 0xe64" (identifier "iVar20") (+ "+") (number_literal "0xe64")) () ")")))) (= "=") (identifier "iVar9")) (; ";")) (expression_statement "*(undefined4 *)(iVar20 + 0xe68) = 0;" (assignment_expression "*(undefined4 *)(iVar20 + 0xe68) = 0" (pointer_expression "*(undefined4 *)(iVar20 + 0xe68)" (* "*") (cast_expression "(undefined4 *)(iVar20 + 0xe68)" (( "(") (type_descriptor "undefined4 *" (type_identifier "undefined4") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe68)" (( "(") (binary_expression "iVar20 + 0xe68" (identifier "iVar20") (+ "+") (number_literal "0xe68")) () ")")))) (= "=") (number_literal "0")) (; ";")) (} "}")) (else_clause "else {\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }" (else "else") (compound_statement "{\n            *(int *)(iVar20 + 0xe64) = iVar5 + -1;\n          }" ({ "{") (expression_statement "*(int *)(iVar20 + 0xe64) = iVar5 + -1;" (assignment_expression "*(int *)(iVar20 + 0xe64) = iVar5 + -1" (pointer_expression "*(int *)(iVar20 + 0xe64)" (* "*") (cast_expression "(int *)(iVar20 + 0xe64)" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (parenthesized_expression "(iVar20 + 0xe64)" (( "(") (binary_expression "iVar20 + 0xe64" (identifier "iVar20") (+ "+") (number_literal "0xe64")) () ")")))) (= "=") (binary_expression "iVar5 + -1" (identifier "iVar5") (+ "+") (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: (identifier)) (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (parameter_declaration type: (type_identifier) declarator: (identifier)) (parameter_declaration type: (primitive_type) declarator: (identifier)))) body: (compound_statement (declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (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: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (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: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (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)))) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (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: (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) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) consequence: (compound_statement (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (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))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (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)))))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (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: (pointer_expression argument: (identifier)))) (while_statement condition: (parenthesized_expression (comma_expression left: (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 (identifier))))) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)) right: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (break_statement))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (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))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))) (expression_statement (assignment_expression left: (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))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (identifier))) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) right: (binary_expression left: (number_literal) right: (identifier))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) 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) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (identifier) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (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)) (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)) (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))))) (return_statement))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (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 (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)) (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)) (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))))) (return_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: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) alternative: (else_clause (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) right: (number_literal)) (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier)) (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)) (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)) (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))))) (return_statement))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) alternative: (else_clause (compound_statement (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (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) (identifier) (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))) right: (number_literal)) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (identifier))))) right: (binary_expression left: (identifier) right: (number_literal)))))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (binary_expression left: (identifier) right: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (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)) (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)) (number_literal) (binary_expression left: (identifier) right: (number_literal))))) (return_statement))) (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)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (identifier))))) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (char_literal (character))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) 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 (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))))) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) 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 (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator)))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) arguments: (argument_list (binary_expression left: (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)) (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)) (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))))) (return_statement))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (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))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (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: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (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 (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) consequence: (compound_statement (do_statement 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 (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier))) consequence: (compound_statement (do_statement body: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (number_literal) right: (identifier)))))) (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)) (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) consequence: (compound_statement (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 (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: (parenthesized_expression (binary_expression left: (identifier) right: (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)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (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 (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: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (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) (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: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (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) (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 (binary_expression left: (identifier) right: (identifier))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (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: (identifier) right: (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 (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)))))))))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (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))))))) (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: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (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) (identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) alternative: (else_clause (compound_statement (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: (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: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) 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: (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: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (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) (identifier)))) (labeled_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))))))))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (number_literal)))) (do_statement body: (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) (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: (pointer_expression argument: (identifier)) right: (number_literal))) (expression_statement (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) (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: (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: (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,code *param_2,undefined4 param_3,int param_4)

{
  code *pcVar1;
  int iVar2;
  undefined4 uVar3;
  undefined2 *puVar4;
  int iVar5;
  code *pcVar6;
  code **ppcVar7;
  uint uVar8;
  int iVar9;
  code *pcVar10;
  int iVar11;
  code **ppcVar12;
  int iVar13;
  undefined4 *puVar14;
  undefined4 uVar15;
  int iVar16;
  code **ppcVar17;
  int iVar18;
  undefined1 *unaff_s5;
  undefined1 *unaff_s6;
  undefined4 *puVar19;
  int iVar20;
  undefined *puVar21;
  code *pcVar22;
  code *pcVar23;
  code **ppcVar24;
  undefined4 uStack_110;
  int iStack_10c;
  undefined4 uStack_108;
  int iStack_104;
  code *pcStack_100;
  int iStack_fc;
  int iStack_f8;
  undefined4 *puStack_f4;
  code **ppcStack_f0;
  code *pcStack_ec;
  code *pcStack_d8;
  code **ppcStack_d0;
  code **ppcStack_cc;
  code **ppcStack_c8;
  code **ppcStack_c4;
  code **ppcStack_c0;
  code *pcStack_bc;
  undefined4 uStack_b8;
  int iStack_b4;
  code *pcStack_b0;
  code *pcStack_ac;
  code *pcStack_a8;
  undefined4 *puStack_a4;
  code **ppcStack_a0;
  undefined1 *puStack_9c;
  undefined1 *puStack_98;
  undefined1 uStack_6d;
  code *pcStack_6c;
  undefined1 auStack_68 [4];
  int iStack_64;
  code *pcStack_60;
  code *pcStack_5c;
  int iStack_58;
  undefined4 *puStack_54;
  code **ppcStack_50;
  undefined4 local_24;
  code *local_20;
  int local_1c;
  
  local_1c = *(int *)PTR___stack_chk_guard_000be114;
  pcVar10 = (code *)(param_1 + 0xf8);
  ppcVar17 = &local_20;
  puVar14 = &local_24;
  while (pcVar23 = pcVar10, pcVar1 = (code *)bufchain_size(), 5 < (int)pcVar1) {
    bufchain_prefix(pcVar10,puVar14);
    if ((int)(pcVar1 + -4) <= (int)local_20) {
      local_20 = pcVar1 + -5;
    }
    (*(code *)PTR_printer_job_data_000bd630)(*(undefined4 *)(param_1 + 0x104),local_24,local_20);
    param_2 = local_20;
    bufchain_consume(pcVar10);
  }
  if (local_1c == *(int *)PTR___stack_chk_guard_000be114) {
    return;
  }
  ppcVar7 = ppcVar17;
  puVar21 = PTR___stack_chk_fail_000bddb4;
  (*(code *)PTR___stack_chk_fail_000bddb4)();
  iStack_64 = **(int **)(puVar21 + 0x735a4);
  pcStack_60 = pcVar1;
  pcStack_5c = pcVar10;
  iStack_58 = param_1;
  puStack_54 = puVar14;
  ppcStack_50 = ppcVar17;
  if ((*(int *)(pcVar23 + 0xec) != 0) || (pcVar6 = pcVar23, *(int *)(pcVar23 + 0xf0) != 0)) {
    MASKED(pcVar23);
    pcVar1 = pcVar23 + 0xf8;
    unaff_s5 = auStack_68;
    ppcVar17 = &pcStack_6c;
    puVar14 = (undefined4 *)0x1b;
    unaff_s6 = &uStack_6d;
    while (pcVar10 = (code *)bufchain_size(pcVar1), 0 < (int)pcVar10) {
      bufchain_prefix(pcVar1,ppcVar17,unaff_s5);
      uStack_6d = *pcStack_6c;
      ppcVar7 = (code **)0x1;
      if (((byte)uStack_6d & 0x7f) == 0x1b) {
        param_2 = pcVar10;
        bufchain_consume(pcVar1);
        break;
      }
      (**(code **)(puVar21 + 0x72ac0))(*(undefined4 *)(pcVar23 + 0x104),unaff_s6);
      param_2 = (code *)0x1;
      bufchain_consume(pcVar1);
    }
    pcVar6 = *(code **)(pcVar23 + 0x104);
    (**(code **)(puVar21 + 0x72ac4))();
    *(undefined4 *)(pcVar23 + 0x104) = 0;
    *(undefined4 *)(pcVar23 + 0xf0) = 0;
    *(undefined4 *)(pcVar23 + 0xec) = 0;
  }
  if (iStack_64 == **(int **)(puVar21 + 0x735a4)) {
    return;
  }
  pcVar22 = *(code **)(puVar21 + 0x73244);
  (*pcVar22)();
  pcStack_d8 = pcVar22 + 0x7a4d4;
  iStack_b4 = **(int **)(pcVar22 + 0x73418);
  puVar19 = *(undefined4 **)(param_2 + 0x14);
  uStack_b8 = 0;
  iVar11 = *(int *)(param_2 + 4);
  ppcStack_c4 = *(code ***)(pcVar6 + 4);
  pcVar22 = pcVar6;
  ppcStack_d0 = ppcVar7;
  pcStack_b0 = pcVar1;
  pcStack_ac = pcVar10;
  pcStack_a8 = pcVar23;
  puStack_a4 = puVar14;
  ppcStack_a0 = ppcVar17;
  puStack_9c = unaff_s5;
  puStack_98 = unaff_s6;
  FUN_00048168();
  ppcStack_c8 = (code **)0x0;
  ppcStack_cc = (code **)0x0;
  pcStack_bc = (code *)(*(int *)(pcStack_d8 + -0x7bb0) + -0x7e98);
  ppcVar7 = (code **)0x0;
  ppcVar24 = (code **)0x0;
  ppcVar12 = ppcStack_cc;
  while (ppcStack_cc = ppcVar12, iVar13 = iVar11 + -1, 0 < iVar11) {
    ppcVar17 = *(code ***)(pcVar6 + 4);
    pcVar22 = pcVar6;
    (*(code *)ppcStack_d0)(pcVar6,puVar19,&uStack_b8);
    ppcVar12 = (code **)(*(int *)(pcVar6 + 4) - (int)ppcVar17);
    puVar14 = puVar19 + 3;
    iVar11 = iVar13;
    if (ppcVar24 == ppcVar12) {
      iVar20 = *(int *)pcVar6;
      pcVar22 = (code *)((int)ppcStack_cc + iVar20);
      ppcStack_c0 = (code **)(**(code **)(pcStack_d8 + -0x72b4))
                                       (pcVar22,(int)ppcVar17 + iVar20,ppcVar12);
      if (ppcStack_c0 != (code **)0x0) {
        ppcStack_c8 = (code **)0x0;
        goto LAB_0004affc;
      }
      if ((int)ppcVar12 < 2) {
        if (ppcStack_c8 != (code **)0x0) goto LAB_0004b138;
        ppcStack_c8 = (code **)0x1;
        goto LAB_0004affc;
      }
      iVar16 = (int)ppcVar7 + -1;
      if (ppcStack_c8 != (code **)0x0) {
LAB_0004b138:
        iVar16 = (int)ppcVar7 + -2;
        if ((int)ppcVar7 + -1 < 1) {
          (**(code **)(pcStack_d8 + -0x7774))
                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a54,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0
                     ,0x1c7,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);
          return;
        }
        ppcStack_cc = (code **)((int)ppcStack_cc - (int)ppcVar24);
      }
      ppcVar17 = ppcStack_cc;
      if (iVar16 == 0) {
        if ((code **)((int)ppcStack_c4 + 1) != ppcStack_cc) {
          (**(code **)(pcStack_d8 + -0x7774))
                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a60,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0
                     ,0x1cd,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);
          return;
        }
        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcStack_cc;
      }
      else {
        (**(code **)(pcStack_d8 + -0x76e0))
                  ((int)ppcStack_cc + iVar20 + 1,(int)ppcStack_cc + iVar20,ppcVar24);
        *(int *)(pcVar6 + 4) = (int)ppcVar24 + (int)ppcVar17 + 1;
        if (0x7f < iVar16 - 1U) {
          (**(code **)(pcStack_d8 + -0x7774))
                    (*(int *)(pcStack_d8 + -0x7f68) + 0x2a78,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0
                     ,0x1d8,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);
          return;
        }
        *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)iVar16 + -1;
        ppcStack_c4 = ppcStack_cc;
      }
      ppcVar17 = ppcStack_c4;
      iVar20 = 3;
      if (ppcStack_c8 == (code **)0x0) {
        iVar20 = 2;
      }
      if (iVar13 < 1) {
LAB_0004af8c:
        iVar16 = *(int *)pcVar6;
      }
      else {
        do {
          uVar3 = uStack_b8;
          iVar16 = *(int *)(pcVar6 + 4);
          (*(code *)ppcStack_d0)(pcVar6,puVar14,&uStack_b8);
          iVar11 = *(int *)(pcVar6 + 4);
          *(int *)(pcVar6 + 4) = iVar16;
          if ((ppcVar12 != (code **)(iVar11 - iVar16)) ||
             (iVar11 = (**(code **)(pcStack_d8 + -0x72b4))
                                 ((int)ppcVar17 + *(int *)pcVar6 + 1,*(int *)pcVar6 + iVar16),
             iVar11 != 0)) {
LAB_0004af7c:
            uStack_b8 = uVar3;
            param_4 = *(int *)(pcStack_d8 + -0x7f68);
            iVar11 = iVar13;
            if (0x7f < iVar20 - 2U) {
              (**(code **)(pcStack_d8 + -0x7774))
                        (*(int *)(pcStack_d8 + -0x7f68) + 0x2a98,
                         *(int *)(pcStack_d8 + -0x7f68) + 0x28d0,0x1ed,param_4 + 0x3488);
              return;
            }
            goto LAB_0004af8c;
          }
          iVar13 = iVar13 + -1;
          puVar14 = puVar14 + 3;
          iVar20 = iVar20 + 1;
          uVar3 = uStack_b8;
          if (iVar13 == 0) goto LAB_0004af7c;
        } while (iVar20 != 0x81);
        iVar16 = *(int *)pcVar6;
        iVar11 = iVar13;
      }
      *(char *)((int)ppcStack_c4 + iVar16) = (char)iVar20 + '~';
      ppcStack_c4 = *(code ***)(pcVar6 + 4);
      pcVar22 = pcVar6;
      (*pcStack_bc)(pcVar6,0);
      ppcStack_c8 = ppcStack_c0;
      ppcVar17 = ppcStack_c0;
      ppcVar7 = ppcStack_c0;
      puVar19 = puVar14;
      ppcVar24 = ppcStack_c0;
      ppcVar12 = ppcStack_c0;
    }
    else {
      ppcStack_c8 = (code **)0x0;
LAB_0004affc:
      ppcVar7 = (code **)((int)ppcVar7 + 1);
      puVar19 = puVar14;
      ppcVar24 = ppcVar12;
      ppcVar12 = ppcVar17;
      if (ppcVar7 == (code **)0x80) {
        *(undefined1 *)((int)ppcStack_c4 + *(int *)pcVar6) = 0x7f;
        ppcStack_c4 = *(code ***)(pcVar6 + 4);
        pcVar22 = pcVar6;
        (*pcStack_bc)(pcVar6,0);
        ppcStack_c8 = (code **)0x0;
        ppcVar17 = (code **)0x0;
        ppcVar7 = (code **)0x0;
        ppcVar24 = (code **)0x0;
        ppcVar12 = (code **)0x0;
      }
    }
  }
  if ((int)ppcVar7 < 1) {
    *(code ***)(pcVar6 + 4) = ppcStack_c4;
  }
  else {
    if (0x80 < (int)ppcVar7) {
      (**(code **)(pcStack_d8 + -0x7774))
                (*(int *)(pcStack_d8 + -0x7f68) + 0x2a88,*(int *)(pcStack_d8 + -0x7f68) + 0x28d0,
                 0x21b,*(int *)(pcStack_d8 + -0x7f68) + 0x3488);
      return;
    }
    *(char *)((int)ppcStack_c4 + *(int *)pcVar6) = (char)ppcVar7 + -1;
  }
  if (iStack_b4 == **(int **)(pcStack_d8 + -0x70bc)) {
    return;
  }
  pcVar23 = *(code **)(pcStack_d8 + -0x741c);
  pcVar1 = FUN_0004b15c;
  (*pcVar23)();
  pcVar10 = pcVar23 + 0x7a074;
  iStack_104 = **(int **)(pcVar23 + 0x72fb8);
  uStack_110 = 0;
  iStack_10c = 0;
  uStack_108 = 0;
  uVar8 = *(uint *)(pcVar22 + 4);
  pcStack_100 = pcVar6;
  iStack_fc = iVar11;
  iStack_f8 = iVar13;
  puStack_f4 = puVar14;
  ppcStack_f0 = ppcVar17;
  pcStack_ec = pcVar1;
  if (0x7f < (int)uVar8) {
    do {
      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);
      uVar8 = (int)uVar8 >> 7;
    } while (0x7f < (int)uVar8);
  }
  FUN_00048168(&uStack_110,uVar8 & 0xff);
  uVar8 = (uint)*(ushort *)pcVar22;
  if (0x7f < uVar8) {
    do {
      FUN_00048168(&uStack_110,(uVar8 | 0xffffff80) & 0xff);
      uVar8 = (int)uVar8 >> 7;
    } while (0x7f < uVar8);
  }
  FUN_00048168(&uStack_110,uVar8 & 0xff);
  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7cc4);
  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x7df8);
  FUN_0004acfc(&uStack_110,pcVar22,*(int *)(pcVar23 + 0x724c4) + -0x6e08);
  iVar13 = 1;
  iVar11 = iStack_10c;
  saferealloc(uStack_110);
  if (iStack_104 == **(int **)(pcVar23 + 0x72fb8)) {
    return;
  }
  pcVar23 = *(code **)(pcVar23 + 0x72c58);
  iVar20 = iStack_104;
  (*pcVar23)();
  if (iVar11 == 0) {
    if (*(int *)(iVar20 + 0x1a4) != 0) {
      pcVar10 = (code *)0x0;
    }
  }
  else {
    pcVar10 = (code *)0x0;
  }
  iVar16 = (iVar13 - iVar11) + 1;
  if (param_4 < 0) {
    if (-param_4 <= iVar16) {
      iVar16 = -param_4;
    }
    iVar18 = *(int *)(pcVar23 + 0x722f0);
    iVar2 = *(int *)(pcVar23 + 0x722f0);
    for (; 0 < iVar16; iVar16 = iVar16 + -1) {
      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar13);
      (*(code *)(iVar18 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));
      if (0 < *(int *)(iVar20 + 300)) {
        iVar9 = 0;
        do {
          (*(code *)(iVar2 + -0x76f0))(puVar4,iVar9,iVar20 + 0x54);
          iVar9 = iVar9 + 1;
        } while (iVar9 < *(int *)(iVar20 + 300));
      }
      *puVar4 = 0;
      addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar11);
      iVar9 = *(int *)(iVar20 + 0xe54);
      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {
        if (iVar13 < iVar9 + 1) {
          *(int *)(iVar20 + 0xe54) = iVar13 + 1;
          *(undefined4 *)(iVar20 + 0xe58) = 0;
        }
        else {
          *(int *)(iVar20 + 0xe54) = iVar9 + 1;
        }
      }
      iVar9 = *(int *)(iVar20 + 0xe5c);
      if ((iVar11 <= iVar9) && (iVar9 <= iVar13)) {
        if (iVar13 < iVar9 + 1) {
          *(int *)(iVar20 + 0xe5c) = iVar13 + 1;
          *(undefined4 *)(iVar20 + 0xe60) = 0;
        }
        else {
          *(int *)(iVar20 + 0xe5c) = iVar9 + 1;
        }
      }
    }
  }
  else {
    if (param_4 < iVar16) {
      iVar16 = param_4;
    }
    iVar2 = *(int *)(pcVar23 + 0x722f0);
    iVar18 = *(int *)(pcVar23 + 0x722f0);
    for (; 0 < iVar16; iVar16 = iVar16 + -1) {
      puVar4 = (undefined2 *)delpos234(*(undefined4 *)(iVar20 + 8),iVar11);
      iVar9 = iVar11;
      if (pcVar10 == (code *)0x0) {
        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));
        if (0 < *(int *)(iVar20 + 300)) goto LAB_0004b730;
        *puVar4 = 0;
        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);
LAB_0004b5f8:
        iVar5 = *(int *)(iVar20 + 0xe48);
      }
      else {
        if (0 < *(int *)(iVar20 + 0x130)) {
          iVar5 = count234(*(undefined4 *)(iVar20 + 4));
          if (*(int *)(iVar20 + 0x130) == iVar5) {
            uVar3 = delpos234(*(undefined4 *)(iVar20 + 4),0);
            safefree(uVar3);
            iVar5 = iVar5 + -1;
          }
          else {
            *(int *)(iVar20 + 0x14) = *(int *)(iVar20 + 0x14) + 1;
          }
          uVar15 = *(undefined4 *)(iVar20 + 4);
          uVar3 = FUN_0004b15c(puVar4);
          addpos234(uVar15,uVar3,iVar5);
          iVar5 = *(int *)(iVar20 + 0x10);
          if ((-*(int *)(iVar20 + 0x130) < iVar5) && (iVar5 < 0)) {
            *(int *)(iVar20 + 0x10) = iVar5 + -1;
          }
        }
        (*(code *)(iVar2 + -0x6c2c))(iVar20,puVar4,*(undefined4 *)(iVar20 + 300));
        if (*(int *)(iVar20 + 300) < 1) {
          *puVar4 = 0;
          addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);
LAB_0004b5f0:
          iVar9 = -*(int *)(iVar20 + 0x130);
          goto LAB_0004b5f8;
        }
LAB_0004b730:
        iVar5 = 0;
        do {
          (*(code *)(iVar18 + -0x76f0))(puVar4,iVar5,iVar20 + 0x54);
          iVar5 = iVar5 + 1;
        } while (iVar5 < *(int *)(iVar20 + 300));
        *puVar4 = 0;
        addpos234(*(undefined4 *)(iVar20 + 8),puVar4,iVar13);
        if (pcVar10 != (code *)0x0) goto LAB_0004b5f0;
        iVar5 = *(int *)(iVar20 + 0xe48);
      }
      if (iVar5 != 0) {
        iVar5 = *(int *)(iVar20 + 0xe54);
        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {
          if (iVar5 + -1 < iVar9) {
            *(int *)(iVar20 + 0xe54) = iVar9;
            *(undefined4 *)(iVar20 + 0xe58) = 0;
          }
          else {
            *(int *)(iVar20 + 0xe54) = iVar5 + -1;
          }
        }
        iVar5 = *(int *)(iVar20 + 0xe5c);
        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {
          if (iVar5 + -1 < iVar9) {
            *(int *)(iVar20 + 0xe5c) = iVar9;
            *(undefined4 *)(iVar20 + 0xe60) = 0;
          }
          else {
            *(int *)(iVar20 + 0xe5c) = iVar5 + -1;
          }
        }
        iVar5 = *(int *)(iVar20 + 0xe64);
        if ((iVar9 <= iVar5) && (iVar5 <= iVar13)) {
          if (iVar5 + -1 < iVar9) {
            *(int *)(iVar20 + 0xe64) = iVar9;
            *(undefined4 *)(iVar20 + 0xe68) = 0;
          }
          else {
            *(int *)(iVar20 + 0xe64) = iVar5 + -1;
          }
        }
      }
    }
  }
  return;
}

