
/* WARNING: Type propagation algorithm not settling */

void kwsprep(kwset_t kwset)

{
  bool bVar1;
  tree **pptVar2;
  undefined *puVar3;
  undefined *puVar4;
  undefined3 extraout_var;
  undefined3 extraout_var_00;
  undefined3 extraout_var_01;
  undefined3 extraout_var_02;
  undefined3 extraout_var_03;
  undefined3 extraout_var_04;
  undefined3 extraout_var_05;
  undefined3 extraout_var_06;
  undefined3 extraout_var_07;
  undefined3 extraout_var_08;
  undefined3 extraout_var_09;
  undefined3 extraout_var_10;
  undefined3 extraout_var_11;
  undefined3 extraout_var_12;
  undefined3 extraout_var_13;
  undefined3 extraout_var_14;
  undefined3 extraout_var_15;
  undefined3 extraout_var_16;
  undefined3 extraout_var_17;
  undefined3 extraout_var_18;
  undefined3 extraout_var_19;
  undefined3 extraout_var_20;
  undefined3 extraout_var_21;
  undefined3 extraout_var_22;
  undefined3 extraout_var_23;
  undefined3 extraout_var_24;
  undefined3 extraout_var_25;
  undefined3 extraout_var_26;
  undefined3 extraout_var_27;
  undefined3 extraout_var_28;
  undefined3 extraout_var_29;
  undefined3 extraout_var_30;
  undefined3 extraout_var_31;
  undefined3 extraout_var_32;
  undefined3 extraout_var_33;
  undefined3 extraout_var_34;
  undefined3 extraout_var_35;
  undefined3 extraout_var_36;
  undefined3 extraout_var_37;
  undefined3 extraout_var_38;
  undefined3 extraout_var_39;
  undefined3 extraout_var_40;
  undefined3 extraout_var_41;
  undefined3 extraout_var_42;
  undefined3 extraout_var_43;
  undefined3 extraout_var_44;
  undefined3 extraout_var_45;
  undefined3 extraout_var_46;
  undefined3 extraout_var_47;
  undefined3 extraout_var_48;
  undefined3 extraout_var_49;
  int iVar5;
  trie *ptVar6;
  uint uVar7;
  ptrdiff_t pVar8;
  _Bool _Var14;
  tree *ptVar9;
  char *pcVar10;
  ptrdiff_t *ppVar11;
  byte bVar15;
  uchar *puVar12;
  kwset_t kwset_00;
  anon_union_4_2_94730108_for_temp aVar13;
  trie *ptVar16;
  int iVar17;
  tree *ptVar18;
  char *pcVar19;
  ptrdiff_t *ppVar20;
  kwset_t pkVar21;
  kwset_t pkVar22;
  int iVar23;
  byte bVar25;
  byte bVar26;
  _obstack_chunk *p_Var24;
  uint uVar27;
  byte *pbVar28;
  uint uVar29;
  kwset_t pkVar30;
  kwset_t pkVar31;
  tree *ptVar32;
  uint uVar33;
  uint uVar34;
  uchar *puVar35;
  tree *ptVar36;
  char *pcVar37;
  trie *ptVar38;
  uint uVar39;
  tree *ptVar40;
  tree *ptVar41;
  trie **pptVar42;
  byte *pbVar43;
  uchar *delta;
  int iVar44;
  size_t sVar45;
  tree *ptVar46;
  tree *ptVar47;
  tree *ptStack_534;
  trie *last;
  trie *nextbuf [256];
  uchar deltabuf [256];
  
  puVar3 = PTR___stack_chk_guard_000564b4;
  pbVar43 = (byte *)kwset->trans;
  iVar5 = *(int *)PTR___stack_chk_guard_000564b4;
  delta = kwset->delta;
  if (pbVar43 != (byte *)0x0) {
    delta = deltabuf;
  }
  iVar44 = kwset->words;
  if (iVar44 == 1) {
    ptVar38 = kwset->trie;
    last = ptVar38;
    if (ptVar38 != (trie *)0x0) {
      do {
        ptVar40 = ptVar38->links;
        if (ptVar40 != (tree *)0x0) {
          ptVar32 = ptVar40->llink;
          if (ptVar32 != (tree *)0x0) {
            ptVar36 = ptVar32->llink;
            if (ptVar36 != (tree *)0x0) {
              ptVar41 = ptVar36->llink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                ptVar6 = last;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                }
                last = ptVar41->trie;
                ptVar6->next = last;
              }
              ptVar41 = ptVar36->rlink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                ptVar6 = last;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                }
                last = ptVar41->trie;
                ptVar6->next = last;
              }
              ptVar6 = ptVar36->trie;
              last->next = ptVar6;
              last = ptVar6;
            }
            ptVar36 = ptVar32->rlink;
            if (ptVar36 != (tree *)0x0) {
              ptVar41 = ptVar36->llink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                ptVar6 = last;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                }
                last = ptVar41->trie;
                ptVar6->next = last;
              }
              ptVar41 = ptVar36->rlink;
              ptVar6 = last;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                if (ptVar46 == (tree *)0x0) {
                  ptVar6 = ptVar41->trie;
                  last->next = ptVar6;
                }
                else {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar16 = ptVar46->trie;
                  last->next = ptVar16;
                  ptVar6 = ptVar41->trie;
                  ptVar16->next = ptVar6;
                }
              }
              last = ptVar36->trie;
              ptVar6->next = last;
            }
            ptVar6 = ptVar32->trie;
            last->next = ptVar6;
            last = ptVar6;
          }
          ptVar32 = ptVar40->rlink;
          ptVar6 = last;
          if (ptVar32 != (tree *)0x0) {
            ptVar36 = ptVar32->llink;
            if (ptVar36 != (tree *)0x0) {
              ptVar41 = ptVar36->llink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                ptVar6 = last;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                }
                last = ptVar41->trie;
                ptVar6->next = last;
              }
              ptVar41 = ptVar36->rlink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                ptVar6 = last;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                }
                last = ptVar41->trie;
                ptVar6->next = last;
              }
              ptVar6 = ptVar36->trie;
              last->next = ptVar6;
              last = ptVar6;
            }
            ptVar36 = ptVar32->rlink;
            if (ptVar36 != (tree *)0x0) {
              ptVar41 = ptVar36->llink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar6 = ptVar41->trie;
                last->next = ptVar6;
                last = ptVar6;
              }
              ptVar41 = ptVar36->rlink;
              if (ptVar41 == (tree *)0x0) {
                ptVar6 = ptVar36->trie;
                last->next = ptVar6;
                last = ptVar6;
              }
              else {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                if (ptVar46 == (tree *)0x0) {
                  ptVar6 = ptVar41->trie;
                  last->next = ptVar6;
                }
                else {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,&last);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,&last);
                  }
                  ptVar16 = ptVar46->trie;
                  last->next = ptVar16;
                  ptVar6 = ptVar41->trie;
                  ptVar16->next = ptVar6;
                }
                last = ptVar36->trie;
                ptVar6->next = last;
              }
            }
            ptVar6 = ptVar32->trie;
            last->next = ptVar6;
          }
          last = ptVar40->trie;
          ptVar6->next = last;
        }
        ptVar38 = ptVar38->next;
      } while (ptVar38 != (trie *)0x0);
    }
    pcVar37 = (kwset->obstack).chunk_limit;
    pcVar10 = (kwset->obstack).next_free;
    uVar29 = kwset->mind;
    if ((uint)((int)pcVar37 - (int)pcVar10) < uVar29) {
      _obstack_newchunk(&kwset->obstack,uVar29);
      puVar35 = (uchar *)(kwset->obstack).object_base;
      puVar12 = (uchar *)((kwset->obstack).next_free + uVar29);
      pcVar37 = (kwset->obstack).chunk_limit;
      uVar29 = kwset->mind;
      (kwset->obstack).next_free = (char *)puVar12;
      if (puVar12 == puVar35) goto LAB_00020968;
    }
    else {
      puVar35 = (uchar *)(kwset->obstack).object_base;
      puVar12 = (uchar *)(pcVar10 + uVar29);
      (kwset->obstack).next_free = (char *)puVar12;
      if (puVar12 == puVar35) {
LAB_00020968:
        (kwset->obstack).field_0x28 = (kwset->obstack).field_0x28 & 0xbf | 0x40;
      }
    }
    uVar34 = (kwset->obstack).alignment_mask;
    p_Var24 = (kwset->obstack).chunk;
    pcVar10 = (char *)((uint)(puVar12 + uVar34) & ~uVar34);
    (kwset->obstack).next_free = pcVar10;
    if ((uint)((int)pcVar37 - (int)p_Var24) < (uint)((int)pcVar10 - (int)p_Var24)) {
      (kwset->obstack).next_free = pcVar37;
      pcVar10 = pcVar37;
    }
    ptVar38 = kwset->trie;
    (kwset->obstack).object_base = pcVar10;
    kwset->target = (char *)puVar35;
    if (0 < (int)uVar29) {
      *puVar35 = ptVar38->links->label;
      ptVar38 = ptVar38->next;
      if (1 < kwset->mind) {
        iVar17 = 1;
        do {
          puVar12 = (uchar *)(kwset->target + iVar17);
          iVar17 = iVar17 + 1;
          *puVar12 = ptVar38->links->label;
          ptVar38 = ptVar38->next;
        } while (iVar17 < kwset->mind);
      }
    }
    kwset_00 = kwsalloc(kwset->trans);
    pVar8 = kwset->mind;
    pcVar10 = kwset->target;
    kwset_00->kwsexec =
         (_func_ptrdiff_t_kwset_t_char_ptr_ptrdiff_t_kwsmatch_ptr__Bool *)
         (PTR_LAB_00056238 + -0x47f8);
    kwsincr(kwset_00,pcVar10,pVar8);
    _obstack_free(&kwset->obstack,(void *)0x0);
    pkVar22 = kwset_00;
    pkVar31 = kwset;
    do {
      pkVar30 = pkVar31;
      pkVar21 = pkVar22;
      pkVar22 = (kwset_t)&(pkVar21->obstack).chunk_limit;
      pkVar31 = (kwset_t)&(pkVar30->obstack).chunk_limit;
      p_Var24 = (pkVar21->obstack).chunk;
      pcVar37 = (pkVar21->obstack).object_base;
      pcVar10 = (pkVar21->obstack).next_free;
      (pkVar30->obstack).chunk_size = (pkVar21->obstack).chunk_size;
      (pkVar30->obstack).chunk = p_Var24;
      (pkVar30->obstack).object_base = pcVar37;
      (pkVar30->obstack).next_free = pcVar10;
      puVar4 = PTR_free_000564c0;
    } while (pkVar22 != (kwset_t)&kwset_00->gc2);
    aVar13 = (pkVar21->obstack).temp;
    *(char **)pkVar31 = *(char **)pkVar22;
    (pkVar30->obstack).temp = aVar13;
    (*(code *)puVar4)(kwset_00);
    iVar17 = 0xff;
    if (kwset->mind < 0x100) {
      iVar17 = kwset->mind;
    }
    (*(code *)PTR_memset_000563f4)(delta,iVar17,0x100);
    ptVar38 = kwset->trie;
    last = ptVar38;
    if (ptVar38 != (trie *)0x0) goto LAB_0001d27c;
LAB_000206c8:
    for (ptVar38 = ptVar38->next; ptVar38 != (trie *)0x0; ptVar38 = ptVar38->next) {
      while( true ) {
        iVar23 = ptVar38->parent->maxshift;
        iVar17 = ptVar38->maxshift;
        if (iVar23 < ptVar38->maxshift) {
          ptVar38->maxshift = iVar23;
          iVar17 = iVar23;
        }
        if (ptVar38->shift <= iVar17) break;
        ptVar38->shift = iVar17;
        ptVar38 = ptVar38->next;
        if (ptVar38 == (trie *)0x0) goto LAB_0001dfc8;
      }
    }
  }
  else {
    iVar17 = 0xff;
    if (kwset->mind < 0x100) {
      iVar17 = kwset->mind;
    }
    (*(code *)PTR_memset_000563f4)(delta,iVar17,0x100);
    ptVar38 = kwset->trie;
    last = ptVar38;
    if (ptVar38 != (trie *)0x0) {
LAB_0001d27c:
      pptVar42 = &last;
      last = ptVar38;
      do {
        ptVar40 = ptVar38->links;
        if (ptVar40 != (tree *)0x0) {
          ptVar32 = ptVar40->llink;
          if (ptVar32 != (tree *)0x0) {
            ptVar36 = ptVar32->llink;
            if (ptVar36 != (tree *)0x0) {
              ptVar41 = ptVar36->llink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                ptVar6 = last;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                }
                last = ptVar41->trie;
                ptVar6->next = last;
              }
              ptVar41 = ptVar36->rlink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                ptVar6 = last;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                }
                last = ptVar41->trie;
                ptVar6->next = last;
              }
              ptVar6 = ptVar36->trie;
              last->next = ptVar6;
              last = ptVar6;
            }
            ptVar36 = ptVar32->rlink;
            if (ptVar36 != (tree *)0x0) {
              ptVar41 = ptVar36->llink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                ptVar6 = last;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                }
                last = ptVar41->trie;
                ptVar6->next = last;
              }
              ptVar41 = ptVar36->rlink;
              ptVar6 = last;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                if (ptVar46 == (tree *)0x0) {
                  ptVar6 = ptVar41->trie;
                  last->next = ptVar6;
                }
                else {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar16 = ptVar46->trie;
                  last->next = ptVar16;
                  ptVar6 = ptVar41->trie;
                  ptVar16->next = ptVar6;
                }
              }
              last = ptVar36->trie;
              ptVar6->next = last;
            }
            ptVar6 = ptVar32->trie;
            last->next = ptVar6;
            last = ptVar6;
          }
          ptVar32 = ptVar40->rlink;
          ptVar6 = last;
          if (ptVar32 != (tree *)0x0) {
            ptVar36 = ptVar32->llink;
            if (ptVar36 != (tree *)0x0) {
              ptVar41 = ptVar36->llink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                ptVar6 = last;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                }
                last = ptVar41->trie;
                ptVar6->next = last;
              }
              ptVar41 = ptVar36->rlink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                ptVar6 = last;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                }
                last = ptVar41->trie;
                ptVar6->next = last;
              }
              ptVar6 = ptVar36->trie;
              last->next = ptVar6;
              last = ptVar6;
            }
            ptVar36 = ptVar32->rlink;
            if (ptVar36 != (tree *)0x0) {
              ptVar41 = ptVar36->llink;
              if (ptVar41 != (tree *)0x0) {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar6 = ptVar41->trie;
                last->next = ptVar6;
                last = ptVar6;
              }
              ptVar41 = ptVar36->rlink;
              if (ptVar41 == (tree *)0x0) {
                ptVar6 = ptVar36->trie;
                last->next = ptVar6;
                last = ptVar6;
              }
              else {
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar6 = ptVar46->trie;
                  last->next = ptVar6;
                  last = ptVar6;
                }
                ptVar46 = ptVar41->rlink;
                if (ptVar46 == (tree *)0x0) {
                  ptVar6 = ptVar41->trie;
                  last->next = ptVar6;
                }
                else {
                  if (ptVar46->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->llink,pptVar42);
                  }
                  if (ptVar46->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
                    enqueue(ptVar46->rlink,pptVar42);
                  }
                  ptVar16 = ptVar46->trie;
                  last->next = ptVar16;
                  ptVar6 = ptVar41->trie;
                  ptVar16->next = ptVar6;
                }
                last = ptVar36->trie;
                ptVar6->next = last;
              }
            }
            ptVar6 = ptVar32->trie;
            last->next = ptVar6;
          }
          last = ptVar40->trie;
          ptVar40 = ptVar38->links;
          iVar17 = ptVar38->depth;
          ptVar6->next = last;
          if (ptVar40 != (tree *)0x0) {
            ptVar32 = ptVar40->llink;
            if (ptVar32 != (tree *)0x0) {
              ptVar36 = ptVar32->llink;
              if (ptVar36 != (tree *)0x0) {
                ptVar41 = ptVar36->llink;
                if (ptVar41 != (tree *)0x0) {
                  ptVar46 = ptVar41->llink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  ptVar46 = ptVar41->rlink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {
                    delta[ptVar41->label] = (byte)iVar17;
                  }
                }
                ptVar41 = ptVar36->rlink;
                if (ptVar41 != (tree *)0x0) {
                  ptVar46 = ptVar41->llink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  ptVar46 = ptVar41->rlink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {
                    delta[ptVar41->label] = (byte)iVar17;
                  }
                }
                if (iVar17 < (int)(uint)delta[ptVar36->label]) {
                  delta[ptVar36->label] = (byte)iVar17;
                }
              }
              ptVar36 = ptVar32->rlink;
              if (ptVar36 != (tree *)0x0) {
                ptVar41 = ptVar36->llink;
                if (ptVar41 != (tree *)0x0) {
                  ptVar46 = ptVar41->llink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  ptVar46 = ptVar41->rlink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {
                    delta[ptVar41->label] = (byte)iVar17;
                  }
                }
                ptVar41 = ptVar36->rlink;
                if (ptVar41 != (tree *)0x0) {
                  ptVar46 = ptVar41->llink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  ptVar46 = ptVar41->rlink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {
                    delta[ptVar41->label] = (byte)iVar17;
                  }
                }
                if (iVar17 < (int)(uint)delta[ptVar36->label]) {
                  delta[ptVar36->label] = (byte)iVar17;
                }
              }
              if (iVar17 < (int)(uint)delta[ptVar32->label]) {
                delta[ptVar32->label] = (byte)iVar17;
              }
            }
            ptVar32 = ptVar40->rlink;
            if (ptVar32 != (tree *)0x0) {
              ptVar36 = ptVar32->llink;
              if (ptVar36 != (tree *)0x0) {
                ptVar41 = ptVar36->llink;
                if (ptVar41 != (tree *)0x0) {
                  ptVar46 = ptVar41->llink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  ptVar46 = ptVar41->rlink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {
                    delta[ptVar41->label] = (byte)iVar17;
                  }
                }
                ptVar41 = ptVar36->rlink;
                if (ptVar41 != (tree *)0x0) {
                  ptVar46 = ptVar41->llink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  ptVar46 = ptVar41->rlink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {
                    delta[ptVar41->label] = (byte)iVar17;
                  }
                }
                if (iVar17 < (int)(uint)delta[ptVar36->label]) {
                  delta[ptVar36->label] = (byte)iVar17;
                }
              }
              ptVar36 = ptVar32->rlink;
              if (ptVar36 != (tree *)0x0) {
                ptVar41 = ptVar36->llink;
                if (ptVar41 != (tree *)0x0) {
                  ptVar46 = ptVar41->llink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  ptVar46 = ptVar41->rlink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {
                    delta[ptVar41->label] = (byte)iVar17;
                  }
                }
                ptVar41 = ptVar36->rlink;
                if (ptVar41 != (tree *)0x0) {
                  ptVar46 = ptVar41->llink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  ptVar46 = ptVar41->rlink;
                  if (ptVar46 != (tree *)0x0) {
                    treedelta(ptVar46->llink,iVar17,delta);
                    treedelta(ptVar46->rlink,iVar17,delta);
                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {
                      delta[ptVar46->label] = (byte)iVar17;
                    }
                  }
                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {
                    delta[ptVar41->label] = (byte)iVar17;
                  }
                }
                if (iVar17 < (int)(uint)delta[ptVar36->label]) {
                  delta[ptVar36->label] = (byte)iVar17;
                }
              }
              if (iVar17 < (int)(uint)delta[ptVar32->label]) {
                delta[ptVar32->label] = (byte)iVar17;
              }
            }
            if (iVar17 < (int)(uint)delta[ptVar40->label]) {
              delta[ptVar40->label] = (byte)iVar17;
            }
            ptVar40 = ptVar38->links;
          }
        }
        treefails(ptVar40,ptVar38->fail,kwset->trie,iVar44 == 1);
        if (iVar44 == 1) {
          pVar8 = kwset->mind;
          ptVar6 = ptVar38->fail;
          ptVar38->shift = pVar8;
          ptVar38->maxshift = pVar8;
          if (ptVar6 == (trie *)0x0) goto LAB_0001dfb4;
          ptVar40 = ptVar38->links;
          sVar45 = ptVar38->accepting;
          do {
            if (ptVar40 != (tree *)0x0) {
              ptVar36 = ptVar40->llink;
              ptVar32 = ptVar6->links;
              if (ptVar36 == (tree *)0x0) {
                ptVar36 = ptVar40->rlink;
                if (ptVar36 == (tree *)0x0) {
                  if (ptVar32 == (tree *)0x0) goto LAB_0001e864;
                  bVar15 = ptVar32->label;
                }
                else {
LAB_0001e8cc:
                  ptVar41 = ptVar36->llink;
                  if (ptVar41 == (tree *)0x0) {
                    ptVar41 = ptVar36->rlink;
                    if (ptVar41 == (tree *)0x0) {
                      if (ptVar32 == (tree *)0x0) goto LAB_0001e864;
                      bVar25 = ptVar32->label;
                    }
                    else {
LAB_0001eaa0:
                      ptVar46 = ptVar41->llink;
                      if (ptVar46 != (tree *)0x0) {
                        ptVar47 = ptVar46->llink;
                        if (ptVar47 == (tree *)0x0) {
                          ptVar47 = ptVar46->rlink;
                          if (ptVar47 == (tree *)0x0) {
                            if (ptVar32 == (tree *)0x0) goto LAB_0001e864;
                            bVar15 = ptVar32->label;
LAB_0001fbdc:
                            bVar25 = ptVar46->label;
                            ptVar46 = ptVar32;
                            bVar26 = bVar15;
joined_r0x0001fbe0:
                            while (bVar15 != bVar25) {
                              ptVar47 = ptVar46->rlink;
                              if (bVar25 < bVar15) {
                                ptVar47 = ptVar46->llink;
                              }
                              if (ptVar47 == (tree *)0x0) {
                                iVar17 = ptVar38->depth;
                                goto LAB_0001e868;
                              }
                              ptVar46 = ptVar47;
                              bVar15 = ptVar47->label;
                            }
                            ptVar46 = ptVar41->rlink;
                            if (ptVar46 != (tree *)0x0) goto LAB_0001efdc;
                            bVar15 = ptVar41->label;
                            ptVar41 = ptVar32;
                            bVar25 = bVar26;
                            goto joined_r0x0001fb94;
                          }
LAB_0001f218:
                          ptVar18 = ptVar47->llink;
                          if (ptVar18 == (tree *)0x0) {
                            ptStack_534 = ptVar47->rlink;
                            if (ptStack_534 == (tree *)0x0) {
                              if (ptVar32 != (tree *)0x0) {
                                bVar15 = ptVar32->label;
                                goto LAB_0001f8cc;
                              }
                            }
                            else {
                              _Var14 = hasevery(ptVar32,ptStack_534->llink);
                              if (CONCAT31(extraout_var_42,_Var14) != 0) goto LAB_0001f764;
                            }
                          }
                          else {
                            _Var14 = hasevery(ptVar32,ptVar18->llink);
                            if (((CONCAT31(extraout_var_32,_Var14) != 0) &&
                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                                CONCAT31(extraout_var_33,_Var14) != 0)) && (ptVar32 != (tree *)0x0))
                            {
                              bVar15 = ptVar32->label;
                              bVar25 = bVar15;
                              ptVar9 = ptVar32;
                              while (ptVar18->label != bVar25) {
                                pptVar2 = &ptVar9->llink;
                                ptVar9 = ptVar9->rlink;
                                if (ptVar18->label < bVar25) {
                                  ptVar9 = *pptVar2;
                                }
                                if (ptVar9 == (tree *)0x0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
                                bVar25 = ptVar9->label;
                              }
                              ptStack_534 = ptVar47->rlink;
                              if (ptStack_534 != (tree *)0x0) {
                                _Var14 = hasevery(ptVar32,ptStack_534->llink);
                                if (CONCAT31(extraout_var_49,_Var14) == 0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
LAB_0001f764:
                                _Var14 = hasevery(ptVar32,ptStack_534->rlink);
                                if ((CONCAT31(extraout_var_43,_Var14) == 0) ||
                                   (ptVar32 == (tree *)0x0)) goto LAB_0001e864;
                                bVar15 = ptVar32->label;
                                bVar25 = bVar15;
                                ptVar18 = ptVar32;
                                while (bVar25 != ptStack_534->label) {
                                  pptVar2 = &ptVar18->llink;
                                  ptVar18 = ptVar18->rlink;
                                  if (ptStack_534->label < bVar25) {
                                    ptVar18 = *pptVar2;
                                  }
                                  if (ptVar18 == (tree *)0x0) {
                                    iVar17 = ptVar38->depth;
                                    goto LAB_0001e868;
                                  }
                                  bVar25 = ptVar18->label;
                                }
                              }
LAB_0001f8cc:
                              ptVar18 = ptVar32;
                              bVar25 = bVar15;
                              while (bVar25 != ptVar47->label) {
                                pptVar2 = &ptVar18->llink;
                                ptVar18 = ptVar18->rlink;
                                if (ptVar47->label < bVar25) {
                                  ptVar18 = *pptVar2;
                                }
                                if (ptVar18 == (tree *)0x0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
                                bVar25 = ptVar18->label;
                              }
                              goto LAB_0001fbdc;
                            }
                          }
                        }
                        else {
                          _Var14 = hasevery(ptVar32,ptVar47->llink);
                          if (CONCAT31(extraout_var_08,_Var14) != 0) {
                            ptVar18 = ptVar47->rlink;
                            if (ptVar18 == (tree *)0x0) {
                              if (ptVar32 != (tree *)0x0) {
                                bVar15 = ptVar32->label;
                                goto LAB_0001f9c8;
                              }
                            }
                            else {
                              _Var14 = hasevery(ptVar32,ptVar18->llink);
                              if (((CONCAT31(extraout_var_09,_Var14) != 0) &&
                                  (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                                  CONCAT31(extraout_var_10,_Var14) != 0)) &&
                                 (ptVar32 != (tree *)0x0)) {
                                bVar15 = ptVar32->label;
                                bVar25 = bVar15;
                                ptVar9 = ptVar32;
                                while (ptVar18->label != bVar25) {
                                  pptVar2 = &ptVar9->llink;
                                  ptVar9 = ptVar9->rlink;
                                  if (ptVar18->label < bVar25) {
                                    ptVar9 = *pptVar2;
                                  }
                                  if (ptVar9 == (tree *)0x0) {
                                    iVar17 = ptVar38->depth;
                                    goto LAB_0001e868;
                                  }
                                  bVar25 = ptVar9->label;
                                }
LAB_0001f9c8:
                                ptVar18 = ptVar32;
                                bVar25 = bVar15;
                                while (bVar25 != ptVar47->label) {
                                  pptVar2 = &ptVar18->llink;
                                  ptVar18 = ptVar18->rlink;
                                  if (ptVar47->label < bVar25) {
                                    ptVar18 = *pptVar2;
                                  }
                                  if (ptVar18 == (tree *)0x0) {
                                    iVar17 = ptVar38->depth;
                                    goto LAB_0001e868;
                                  }
                                  bVar25 = ptVar18->label;
                                }
                                ptVar47 = ptVar46->rlink;
                                if (ptVar47 != (tree *)0x0) goto LAB_0001f218;
                                bVar25 = ptVar46->label;
                                ptVar46 = ptVar32;
                                bVar26 = bVar15;
                                goto joined_r0x0001fbe0;
                              }
                            }
                          }
                        }
LAB_0001e864:
                        iVar17 = ptVar38->depth;
                        goto LAB_0001e868;
                      }
                      ptVar46 = ptVar41->rlink;
                      if (ptVar46 == (tree *)0x0) {
                        if (ptVar32 == (tree *)0x0) goto LAB_0001e864;
                        bVar26 = ptVar32->label;
                      }
                      else {
LAB_0001efdc:
                        ptVar47 = ptVar46->llink;
                        if (ptVar47 != (tree *)0x0) {
                          ptVar18 = ptVar47->llink;
                          if (ptVar18 == (tree *)0x0) {
                            ptStack_534 = ptVar47->rlink;
                            if (ptStack_534 == (tree *)0x0) {
                              if (ptVar32 != (tree *)0x0) {
                                bVar15 = ptVar32->label;
                                goto LAB_0001f918;
                              }
                            }
                            else {
                              _Var14 = hasevery(ptVar32,ptStack_534->llink);
                              if (CONCAT31(extraout_var_38,_Var14) != 0) goto LAB_0001f654;
                            }
                          }
                          else {
                            _Var14 = hasevery(ptVar32,ptVar18->llink);
                            if (((CONCAT31(extraout_var_26,_Var14) != 0) &&
                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                                CONCAT31(extraout_var_27,_Var14) != 0)) && (ptVar32 != (tree *)0x0))
                            {
                              bVar15 = ptVar32->label;
                              bVar25 = bVar15;
                              ptVar9 = ptVar32;
                              while (ptVar18->label != bVar25) {
                                pptVar2 = &ptVar9->llink;
                                ptVar9 = ptVar9->rlink;
                                if (ptVar18->label < bVar25) {
                                  ptVar9 = *pptVar2;
                                }
                                if (ptVar9 == (tree *)0x0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
                                bVar25 = ptVar9->label;
                              }
                              ptStack_534 = ptVar47->rlink;
                              if (ptStack_534 != (tree *)0x0) {
                                _Var14 = hasevery(ptVar32,ptStack_534->llink);
                                if (CONCAT31(extraout_var_46,_Var14) == 0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
LAB_0001f654:
                                _Var14 = hasevery(ptVar32,ptStack_534->rlink);
                                if ((CONCAT31(extraout_var_39,_Var14) == 0) ||
                                   (ptVar32 == (tree *)0x0)) goto LAB_0001e864;
                                bVar15 = ptVar32->label;
                                bVar25 = bVar15;
                                ptVar18 = ptVar32;
                                while (bVar25 != ptStack_534->label) {
                                  pptVar2 = &ptVar18->llink;
                                  ptVar18 = ptVar18->rlink;
                                  if (ptStack_534->label < bVar25) {
                                    ptVar18 = *pptVar2;
                                  }
                                  if (ptVar18 == (tree *)0x0) {
                                    iVar17 = ptVar38->depth;
                                    goto LAB_0001e868;
                                  }
                                  bVar25 = ptVar18->label;
                                }
                              }
LAB_0001f918:
                              ptVar18 = ptVar32;
                              bVar25 = bVar15;
                              while (bVar25 != ptVar47->label) {
                                pptVar2 = &ptVar18->llink;
                                ptVar18 = ptVar18->rlink;
                                if (ptVar47->label < bVar25) {
                                  ptVar18 = *pptVar2;
                                }
                                if (ptVar18 == (tree *)0x0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
                                bVar25 = ptVar18->label;
                              }
                              ptVar47 = ptVar46->rlink;
                              if (ptVar47 != (tree *)0x0) goto LAB_0001f3d4;
                              bVar25 = ptVar46->label;
                              ptVar46 = ptVar32;
                              bVar26 = bVar15;
                              goto joined_r0x00020768;
                            }
                          }
                          goto LAB_0001e864;
                        }
                        ptVar47 = ptVar46->rlink;
                        if (ptVar47 == (tree *)0x0) {
                          if (ptVar32 == (tree *)0x0) goto LAB_0001e864;
                          bVar15 = ptVar32->label;
                        }
                        else {
LAB_0001f3d4:
                          ptVar18 = ptVar47->llink;
                          if (ptVar18 == (tree *)0x0) {
                            ptVar18 = ptVar47->rlink;
                            if (ptVar18 == (tree *)0x0) {
                              if (ptVar32 != (tree *)0x0) {
                                bVar25 = ptVar32->label;
                                goto LAB_00020814;
                              }
                            }
                            else {
LAB_0001fcfc:
                              _Var14 = hasevery(ptVar32,ptVar18->llink);
                              if (((CONCAT31(extraout_var_44,_Var14) != 0) &&
                                  (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                                  CONCAT31(extraout_var_45,_Var14) != 0)) &&
                                 (ptVar32 != (tree *)0x0)) {
                                bVar25 = ptVar32->label;
                                bVar15 = bVar25;
                                ptVar9 = ptVar32;
                                while (ptVar18->label != bVar15) {
                                  pptVar2 = &ptVar9->llink;
                                  ptVar9 = ptVar9->rlink;
                                  if (ptVar18->label < bVar15) {
                                    ptVar9 = *pptVar2;
                                  }
                                  if (ptVar9 == (tree *)0x0) {
                                    iVar17 = ptVar38->depth;
                                    goto LAB_0001e868;
                                  }
                                  bVar15 = ptVar9->label;
                                }
LAB_00020814:
                                bVar26 = ptVar47->label;
                                ptVar47 = ptVar32;
                                bVar15 = bVar25;
                                goto joined_r0x00020818;
                              }
                            }
                            goto LAB_0001e864;
                          }
                          _Var14 = hasevery(ptVar32,ptVar18->llink);
                          if (((CONCAT31(extraout_var_34,_Var14) == 0) ||
                              (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                              CONCAT31(extraout_var_35,_Var14) == 0)) || (ptVar32 == (tree *)0x0))
                          goto LAB_0001e864;
                          bVar25 = ptVar32->label;
                          bVar15 = bVar25;
                          ptVar9 = ptVar32;
                          while (bVar15 != ptVar18->label) {
                            pptVar2 = &ptVar9->llink;
                            ptVar9 = ptVar9->rlink;
                            if (ptVar18->label < bVar15) {
                              ptVar9 = *pptVar2;
                            }
                            if (ptVar9 == (tree *)0x0) {
                              iVar17 = ptVar38->depth;
                              goto LAB_0001e868;
                            }
                            bVar15 = ptVar9->label;
                          }
                          ptVar18 = ptVar47->rlink;
                          if (ptVar18 != (tree *)0x0) goto LAB_0001fcfc;
                          bVar26 = ptVar47->label;
                          ptVar47 = ptVar32;
                          bVar15 = bVar25;
joined_r0x00020818:
                          while (bVar25 != bVar26) {
                            ptVar18 = ptVar47->rlink;
                            if (bVar26 < bVar25) {
                              ptVar18 = ptVar47->llink;
                            }
                            if (ptVar18 == (tree *)0x0) {
                              iVar17 = ptVar38->depth;
                              goto LAB_0001e868;
                            }
                            ptVar47 = ptVar18;
                            bVar25 = ptVar18->label;
                          }
                        }
                        bVar25 = ptVar46->label;
                        ptVar46 = ptVar32;
                        bVar26 = bVar15;
joined_r0x00020768:
                        while (bVar25 != bVar15) {
                          ptVar47 = ptVar46->rlink;
                          if (bVar25 < bVar15) {
                            ptVar47 = ptVar46->llink;
                          }
                          if (ptVar47 == (tree *)0x0) {
                            iVar17 = ptVar38->depth;
                            goto LAB_0001e868;
                          }
                          ptVar46 = ptVar47;
                          bVar15 = ptVar47->label;
                        }
                      }
                      bVar15 = ptVar41->label;
                      ptVar41 = ptVar32;
                      bVar25 = bVar26;
joined_r0x0001fb94:
                      while (bVar15 != bVar26) {
                        ptVar46 = ptVar41->rlink;
                        if (bVar15 < bVar26) {
                          ptVar46 = ptVar41->llink;
                        }
                        if (ptVar46 == (tree *)0x0) {
                          iVar17 = ptVar38->depth;
                          goto LAB_0001e868;
                        }
                        ptVar41 = ptVar46;
                        bVar26 = ptVar46->label;
                      }
                    }
                    bVar26 = ptVar36->label;
                    ptVar36 = ptVar32;
                    bVar15 = bVar25;
                  }
                  else {
                    ptVar46 = ptVar41->llink;
                    if (ptVar46 == (tree *)0x0) {
                      ptVar46 = ptVar41->rlink;
                      if (ptVar46 == (tree *)0x0) {
                        if (ptVar32 == (tree *)0x0) goto LAB_0001e864;
                        bVar15 = ptVar32->label;
LAB_0001f374:
                        bVar26 = ptVar41->label;
                        ptVar41 = ptVar32;
                        bVar25 = bVar15;
                        goto joined_r0x0001f378;
                      }
LAB_0001eb64:
                      ptVar47 = ptVar46->llink;
                      if (ptVar47 == (tree *)0x0) {
                        ptVar47 = ptVar46->rlink;
                        if (ptVar47 == (tree *)0x0) {
                          if (ptVar32 == (tree *)0x0) goto LAB_0001e864;
                          bVar25 = ptVar32->label;
LAB_0001fc3c:
                          bVar26 = ptVar46->label;
                          ptVar46 = ptVar32;
                          bVar15 = bVar25;
joined_r0x0001fc40:
                          while (bVar25 != bVar26) {
                            ptVar47 = ptVar46->rlink;
                            if (bVar26 < bVar25) {
                              ptVar47 = ptVar46->llink;
                            }
                            if (ptVar47 == (tree *)0x0) {
                              iVar17 = ptVar38->depth;
                              goto LAB_0001e868;
                            }
                            ptVar46 = ptVar47;
                            bVar25 = ptVar47->label;
                          }
                          goto LAB_0001f374;
                        }
LAB_0001f180:
                        ptVar18 = ptVar47->llink;
                        if (ptVar18 == (tree *)0x0) {
                          ptStack_534 = ptVar47->rlink;
                          if (ptStack_534 == (tree *)0x0) {
                            if (ptVar32 != (tree *)0x0) {
                              bVar25 = ptVar32->label;
                              goto LAB_0001f880;
                            }
                          }
                          else {
                            _Var14 = hasevery(ptVar32,ptStack_534->llink);
                            if (CONCAT31(extraout_var_40,_Var14) != 0) goto LAB_0001f6dc;
                          }
                        }
                        else {
                          _Var14 = hasevery(ptVar32,ptVar18->llink);
                          if (((CONCAT31(extraout_var_30,_Var14) != 0) &&
                              (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                              CONCAT31(extraout_var_31,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {
                            bVar25 = ptVar32->label;
                            bVar15 = bVar25;
                            ptVar9 = ptVar32;
                            while (bVar15 != ptVar18->label) {
                              pptVar2 = &ptVar9->llink;
                              ptVar9 = ptVar9->rlink;
                              if (ptVar18->label < bVar15) {
                                ptVar9 = *pptVar2;
                              }
                              if (ptVar9 == (tree *)0x0) {
                                iVar17 = ptVar38->depth;
                                goto LAB_0001e868;
                              }
                              bVar15 = ptVar9->label;
                            }
                            ptStack_534 = ptVar47->rlink;
                            if (ptStack_534 != (tree *)0x0) {
                              _Var14 = hasevery(ptVar32,ptStack_534->llink);
                              if (CONCAT31(extraout_var_48,_Var14) == 0) {
                                iVar17 = ptVar38->depth;
                                goto LAB_0001e868;
                              }
LAB_0001f6dc:
                              _Var14 = hasevery(ptVar32,ptStack_534->rlink);
                              if ((CONCAT31(extraout_var_41,_Var14) == 0) ||
                                 (ptVar32 == (tree *)0x0)) goto LAB_0001e864;
                              bVar25 = ptVar32->label;
                              bVar15 = bVar25;
                              ptVar18 = ptVar32;
                              while (ptStack_534->label != bVar15) {
                                pptVar2 = &ptVar18->llink;
                                ptVar18 = ptVar18->rlink;
                                if (ptStack_534->label < bVar15) {
                                  ptVar18 = *pptVar2;
                                }
                                if (ptVar18 == (tree *)0x0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
                                bVar15 = ptVar18->label;
                              }
                            }
LAB_0001f880:
                            ptVar18 = ptVar32;
                            bVar15 = bVar25;
                            while (ptVar47->label != bVar15) {
                              pptVar2 = &ptVar18->llink;
                              ptVar18 = ptVar18->rlink;
                              if (ptVar47->label < bVar15) {
                                ptVar18 = *pptVar2;
                              }
                              if (ptVar18 == (tree *)0x0) {
                                iVar17 = ptVar38->depth;
                                goto LAB_0001e868;
                              }
                              bVar15 = ptVar18->label;
                            }
                            goto LAB_0001fc3c;
                          }
                        }
                      }
                      else {
                        _Var14 = hasevery(ptVar32,ptVar47->llink);
                        if (CONCAT31(extraout_var_11,_Var14) != 0) {
                          ptVar18 = ptVar47->rlink;
                          if (ptVar18 == (tree *)0x0) {
                            if (ptVar32 != (tree *)0x0) {
                              bVar25 = ptVar32->label;
                              goto LAB_0001faac;
                            }
                          }
                          else {
                            _Var14 = hasevery(ptVar32,ptVar18->llink);
                            if (((CONCAT31(extraout_var_12,_Var14) != 0) &&
                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                                CONCAT31(extraout_var_13,_Var14) != 0)) && (ptVar32 != (tree *)0x0))
                            {
                              bVar25 = ptVar32->label;
                              bVar15 = bVar25;
                              ptVar9 = ptVar32;
                              while (bVar15 != ptVar18->label) {
                                pptVar2 = &ptVar9->llink;
                                ptVar9 = ptVar9->rlink;
                                if (ptVar18->label < bVar15) {
                                  ptVar9 = *pptVar2;
                                }
                                if (ptVar9 == (tree *)0x0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
                                bVar15 = ptVar9->label;
                              }
LAB_0001faac:
                              if (ptVar47->label != bVar25) {
                                FUN_0001facc();
                                return;
                              }
                              ptVar47 = ptVar46->rlink;
                              if (ptVar47 != (tree *)0x0) goto LAB_0001f180;
                              bVar26 = ptVar46->label;
                              ptVar46 = ptVar32;
                              bVar15 = bVar25;
                              goto joined_r0x0001fc40;
                            }
                          }
                        }
                      }
                      goto LAB_0001e864;
                    }
                    ptVar47 = ptVar46->llink;
                    if (ptVar47 == (tree *)0x0) {
                      ptVar47 = ptVar46->rlink;
                      if (ptVar47 == (tree *)0x0) {
                        if (ptVar32 != (tree *)0x0) {
                          bVar25 = ptVar32->label;
LAB_0001f46c:
                          bVar26 = ptVar46->label;
                          ptVar46 = ptVar32;
                          bVar15 = bVar25;
                          goto joined_r0x0001f470;
                        }
                      }
                      else {
LAB_0001ed6c:
                        _Var14 = hasevery(ptVar32,ptVar47->llink);
                        if (CONCAT31(extraout_var_17,_Var14) != 0) {
                          ptVar18 = ptVar47->rlink;
                          if (ptVar18 == (tree *)0x0) {
                            if (ptVar32 != (tree *)0x0) {
                              bVar25 = ptVar32->label;
                              goto LAB_0001fb44;
                            }
                          }
                          else {
                            _Var14 = hasevery(ptVar32,ptVar18->llink);
                            if (((CONCAT31(extraout_var_18,_Var14) != 0) &&
                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                                CONCAT31(extraout_var_19,_Var14) != 0)) && (ptVar32 != (tree *)0x0))
                            {
                              bVar25 = ptVar32->label;
                              bVar15 = bVar25;
                              ptVar9 = ptVar32;
                              while (bVar15 != ptVar18->label) {
                                pptVar2 = &ptVar9->llink;
                                ptVar9 = ptVar9->rlink;
                                if (ptVar18->label < bVar15) {
                                  ptVar9 = *pptVar2;
                                }
                                if (ptVar9 == (tree *)0x0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
                                bVar15 = ptVar9->label;
                              }
LAB_0001fb44:
                              ptVar18 = ptVar32;
                              bVar15 = bVar25;
                              while (ptVar47->label != bVar15) {
                                pptVar2 = &ptVar18->llink;
                                ptVar18 = ptVar18->rlink;
                                if (ptVar47->label < bVar15) {
                                  ptVar18 = *pptVar2;
                                }
                                if (ptVar18 == (tree *)0x0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
                                bVar15 = ptVar18->label;
                              }
                              goto LAB_0001f46c;
                            }
                          }
                        }
                      }
                      goto LAB_0001e864;
                    }
                    _Var14 = hasevery(ptVar32,ptVar47->llink);
                    if (((CONCAT31(extraout_var_02,_Var14) == 0) ||
                        (_Var14 = hasevery(ptVar32,ptVar47->rlink),
                        CONCAT31(extraout_var_03,_Var14) == 0)) || (ptVar32 == (tree *)0x0))
                    goto LAB_0001e864;
                    bVar25 = ptVar32->label;
                    bVar15 = bVar25;
                    ptVar18 = ptVar32;
                    while (ptVar47->label != bVar15) {
                      pptVar2 = &ptVar18->llink;
                      ptVar18 = ptVar18->rlink;
                      if (ptVar47->label < bVar15) {
                        ptVar18 = *pptVar2;
                      }
                      if (ptVar18 == (tree *)0x0) {
                        iVar17 = ptVar38->depth;
                        goto LAB_0001e868;
                      }
                      bVar15 = ptVar18->label;
                    }
                    ptVar47 = ptVar46->rlink;
                    if (ptVar47 != (tree *)0x0) goto LAB_0001ed6c;
                    bVar26 = ptVar46->label;
                    ptVar46 = ptVar32;
                    bVar15 = bVar25;
joined_r0x0001f470:
                    while (bVar25 != bVar26) {
                      ptVar47 = ptVar46->rlink;
                      if (bVar26 < bVar25) {
                        ptVar47 = ptVar46->llink;
                      }
                      if (ptVar47 == (tree *)0x0) {
                        iVar17 = ptVar38->depth;
                        goto LAB_0001e868;
                      }
                      ptVar46 = ptVar47;
                      bVar25 = ptVar47->label;
                    }
                    ptVar46 = ptVar41->rlink;
                    if (ptVar46 != (tree *)0x0) goto LAB_0001eb64;
                    bVar26 = ptVar41->label;
                    ptVar41 = ptVar32;
                    bVar25 = bVar15;
joined_r0x0001f378:
                    while (bVar15 != bVar26) {
                      ptVar46 = ptVar41->rlink;
                      if (bVar26 < bVar15) {
                        ptVar46 = ptVar41->llink;
                      }
                      if (ptVar46 == (tree *)0x0) {
                        iVar17 = ptVar38->depth;
                        goto LAB_0001e868;
                      }
                      ptVar41 = ptVar46;
                      bVar15 = ptVar46->label;
                    }
                    ptVar41 = ptVar36->rlink;
                    if (ptVar41 != (tree *)0x0) goto LAB_0001eaa0;
                    bVar26 = ptVar36->label;
                    ptVar36 = ptVar32;
                    bVar15 = bVar25;
                  }
                  while (bVar26 != bVar25) {
                    ptVar41 = ptVar36->rlink;
                    if (bVar26 < bVar25) {
                      ptVar41 = ptVar36->llink;
                    }
                    if (ptVar41 == (tree *)0x0) {
                      iVar17 = ptVar38->depth;
                      goto LAB_0001e868;
                    }
                    ptVar36 = ptVar41;
                    bVar25 = ptVar41->label;
                  }
                }
                bVar25 = ptVar40->label;
              }
              else {
                ptVar41 = ptVar36->llink;
                if (ptVar41 == (tree *)0x0) {
                  ptVar41 = ptVar36->rlink;
                  if (ptVar41 == (tree *)0x0) {
                    if (ptVar32 == (tree *)0x0) goto LAB_0001e864;
                    bVar25 = ptVar32->label;
LAB_0001ef7c:
                    bVar26 = ptVar36->label;
                    ptVar36 = ptVar32;
                    bVar15 = bVar25;
                    goto joined_r0x0001ef80;
                  }
LAB_0001e974:
                  ptVar46 = ptVar41->llink;
                  if (ptVar46 != (tree *)0x0) {
                    ptVar47 = ptVar46->llink;
                    if (ptVar47 == (tree *)0x0) {
                      ptVar47 = ptVar46->rlink;
                      if (ptVar47 == (tree *)0x0) {
                        if (ptVar32 != (tree *)0x0) {
                          bVar15 = ptVar32->label;
LAB_0001f4cc:
                          bVar25 = ptVar46->label;
                          ptVar46 = ptVar32;
                          bVar26 = bVar15;
                          goto joined_r0x0001f4d0;
                        }
                      }
                      else {
LAB_0001ee1c:
                        _Var14 = hasevery(ptVar32,ptVar47->llink);
                        if (CONCAT31(extraout_var_20,_Var14) != 0) {
                          ptVar18 = ptVar47->rlink;
                          if (ptVar18 == (tree *)0x0) {
                            if (ptVar32 != (tree *)0x0) {
                              bVar15 = ptVar32->label;
                              goto LAB_0001faf8;
                            }
                          }
                          else {
                            _Var14 = hasevery(ptVar32,ptVar18->llink);
                            if (((CONCAT31(extraout_var_21,_Var14) != 0) &&
                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                                CONCAT31(extraout_var_22,_Var14) != 0)) && (ptVar32 != (tree *)0x0))
                            {
                              bVar15 = ptVar32->label;
                              bVar25 = bVar15;
                              ptVar9 = ptVar32;
                              while (bVar25 != ptVar18->label) {
                                pptVar2 = &ptVar9->llink;
                                ptVar9 = ptVar9->rlink;
                                if (ptVar18->label < bVar25) {
                                  ptVar9 = *pptVar2;
                                }
                                if (ptVar9 == (tree *)0x0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
                                bVar25 = ptVar9->label;
                              }
LAB_0001faf8:
                              ptVar18 = ptVar32;
                              bVar25 = bVar15;
                              while (ptVar47->label != bVar25) {
                                pptVar2 = &ptVar18->llink;
                                ptVar18 = ptVar18->rlink;
                                if (ptVar47->label < bVar25) {
                                  ptVar18 = *pptVar2;
                                }
                                if (ptVar18 == (tree *)0x0) {
                                  iVar17 = ptVar38->depth;
                                  goto LAB_0001e868;
                                }
                                bVar25 = ptVar18->label;
                              }
                              goto LAB_0001f4cc;
                            }
                          }
                        }
                      }
                      goto LAB_0001e864;
                    }
                    _Var14 = hasevery(ptVar32,ptVar47->llink);
                    if (((CONCAT31(extraout_var_04,_Var14) == 0) ||
                        (_Var14 = hasevery(ptVar32,ptVar47->rlink),
                        CONCAT31(extraout_var_05,_Var14) == 0)) || (ptVar32 == (tree *)0x0))
                    goto LAB_0001e864;
                    bVar15 = ptVar32->label;
                    bVar25 = bVar15;
                    ptVar18 = ptVar32;
                    while (bVar25 != ptVar47->label) {
                      pptVar2 = &ptVar18->llink;
                      ptVar18 = ptVar18->rlink;
                      if (ptVar47->label < bVar25) {
                        ptVar18 = *pptVar2;
                      }
                      if (ptVar18 == (tree *)0x0) {
                        iVar17 = ptVar38->depth;
                        goto LAB_0001e868;
                      }
                      bVar25 = ptVar18->label;
                    }
                    ptVar47 = ptVar46->rlink;
                    if (ptVar47 != (tree *)0x0) goto LAB_0001ee1c;
                    bVar25 = ptVar46->label;
                    ptVar46 = ptVar32;
                    bVar26 = bVar15;
joined_r0x0001f4d0:
                    while (bVar25 != bVar15) {
                      ptVar47 = ptVar46->rlink;
                      if (bVar25 < bVar15) {
                        ptVar47 = ptVar46->llink;
                      }
                      if (ptVar47 == (tree *)0x0) {
                        iVar17 = ptVar38->depth;
                        goto LAB_0001e868;
                      }
                      ptVar46 = ptVar47;
                      bVar15 = ptVar47->label;
                    }
                    ptVar46 = ptVar41->rlink;
                    if (ptVar46 != (tree *)0x0) goto LAB_0001ec1c;
                    bVar15 = ptVar41->label;
                    ptVar41 = ptVar32;
                    bVar25 = bVar26;
joined_r0x0001f32c:
                    while (bVar15 != bVar26) {
                      ptVar46 = ptVar41->rlink;
                      if (bVar15 < bVar26) {
                        ptVar46 = ptVar41->llink;
                      }
                      if (ptVar46 == (tree *)0x0) {
                        iVar17 = ptVar38->depth;
                        goto LAB_0001e868;
                      }
                      ptVar41 = ptVar46;
                      bVar26 = ptVar46->label;
                    }
                    goto LAB_0001ef7c;
                  }
                  ptVar46 = ptVar41->rlink;
                  if (ptVar46 == (tree *)0x0) {
                    if (ptVar32 == (tree *)0x0) goto LAB_0001e864;
                    bVar26 = ptVar32->label;
LAB_0001f328:
                    bVar15 = ptVar41->label;
                    ptVar41 = ptVar32;
                    bVar25 = bVar26;
                    goto joined_r0x0001f32c;
                  }
LAB_0001ec1c:
                  ptVar47 = ptVar46->llink;
                  if (ptVar47 != (tree *)0x0) {
                    _Var14 = hasevery(ptVar32,ptVar47->llink);
                    if (CONCAT31(extraout_var_14,_Var14) != 0) {
                      ptVar18 = ptVar47->rlink;
                      if (ptVar18 == (tree *)0x0) {
                        if (ptVar32 != (tree *)0x0) {
                          bVar15 = ptVar32->label;
                          goto LAB_0001fa14;
                        }
                      }
                      else {
                        _Var14 = hasevery(ptVar32,ptVar18->llink);
                        if (((CONCAT31(extraout_var_15,_Var14) != 0) &&
                            (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                            CONCAT31(extraout_var_16,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {
                          bVar15 = ptVar32->label;
                          bVar25 = bVar15;
                          ptVar9 = ptVar32;
                          while (bVar25 != ptVar18->label) {
                            pptVar2 = &ptVar9->llink;
                            ptVar9 = ptVar9->rlink;
                            if (ptVar18->label < bVar25) {
                              ptVar9 = *pptVar2;
                            }
                            if (ptVar9 == (tree *)0x0) {
                              iVar17 = ptVar38->depth;
                              goto LAB_0001e868;
                            }
                            bVar25 = ptVar9->label;
                          }
LAB_0001fa14:
                          ptVar18 = ptVar32;
                          bVar25 = bVar15;
                          while (bVar25 != ptVar47->label) {
                            pptVar2 = &ptVar18->llink;
                            ptVar18 = ptVar18->rlink;
                            if (ptVar47->label < bVar25) {
                              ptVar18 = *pptVar2;
                            }
                            if (ptVar18 == (tree *)0x0) {
                              iVar17 = ptVar38->depth;
                              goto LAB_0001e868;
                            }
                            bVar25 = ptVar18->label;
                          }
                          ptVar47 = ptVar46->rlink;
                          if (ptVar47 != (tree *)0x0) goto LAB_0001f0e8;
                          bVar25 = ptVar46->label;
                          ptVar46 = ptVar32;
                          bVar26 = bVar15;
                          goto joined_r0x0001fc8c;
                        }
                      }
                    }
                    goto LAB_0001e864;
                  }
                  ptVar47 = ptVar46->rlink;
                  if (ptVar47 == (tree *)0x0) {
                    if (ptVar32 == (tree *)0x0) goto LAB_0001e864;
                    bVar15 = ptVar32->label;
LAB_0001fc88:
                    bVar25 = ptVar46->label;
                    ptVar46 = ptVar32;
                    bVar26 = bVar15;
joined_r0x0001fc8c:
                    while (bVar25 != bVar15) {
                      ptVar47 = ptVar46->rlink;
                      if (bVar25 < bVar15) {
                        ptVar47 = ptVar46->llink;
                      }
                      if (ptVar47 == (tree *)0x0) {
                        iVar17 = ptVar38->depth;
                        goto LAB_0001e868;
                      }
                      ptVar46 = ptVar47;
                      bVar15 = ptVar47->label;
                    }
                    goto LAB_0001f328;
                  }
LAB_0001f0e8:
                  ptVar18 = ptVar47->llink;
                  if (ptVar18 == (tree *)0x0) {
                    ptStack_534 = ptVar47->rlink;
                    if (ptStack_534 == (tree *)0x0) {
                      if (ptVar32 != (tree *)0x0) {
                        bVar15 = ptVar32->label;
LAB_0001f964:
                        ptVar18 = ptVar32;
                        bVar25 = bVar15;
                        while (ptVar47->label != bVar25) {
                          pptVar2 = &ptVar18->llink;
                          ptVar18 = ptVar18->rlink;
                          if (ptVar47->label < bVar25) {
                            ptVar18 = *pptVar2;
                          }
                          if (ptVar18 == (tree *)0x0) {
                            iVar17 = ptVar38->depth;
                            goto LAB_0001e868;
                          }
                          bVar25 = ptVar18->label;
                        }
                        goto LAB_0001fc88;
                      }
                    }
                    else {
                      _Var14 = hasevery(ptVar32,ptStack_534->llink);
                      if (CONCAT31(extraout_var_36,_Var14) != 0) {
LAB_0001f5cc:
                        _Var14 = hasevery(ptVar32,ptStack_534->rlink);
                        if ((CONCAT31(extraout_var_37,_Var14) != 0) && (ptVar32 != (tree *)0x0)) {
                          bVar15 = ptVar32->label;
                          bVar25 = bVar15;
                          ptVar18 = ptVar32;
                          while (ptStack_534->label != bVar25) {
                            pptVar2 = &ptVar18->llink;
                            ptVar18 = ptVar18->rlink;
                            if (ptStack_534->label < bVar25) {
                              ptVar18 = *pptVar2;
                            }
                            if (ptVar18 == (tree *)0x0) {
                              iVar17 = ptVar38->depth;
                              goto LAB_0001e868;
                            }
                            bVar25 = ptVar18->label;
                          }
                          goto LAB_0001f964;
                        }
                      }
                    }
                    goto LAB_0001e864;
                  }
                  _Var14 = hasevery(ptVar32,ptVar18->llink);
                  if (((CONCAT31(extraout_var_28,_Var14) == 0) ||
                      (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                      CONCAT31(extraout_var_29,_Var14) == 0)) || (ptVar32 == (tree *)0x0))
                  goto LAB_0001e864;
                  bVar15 = ptVar32->label;
                  bVar25 = bVar15;
                  ptVar9 = ptVar32;
                  while (bVar25 != ptVar18->label) {
                    pptVar2 = &ptVar9->llink;
                    ptVar9 = ptVar9->rlink;
                    if (ptVar18->label < bVar25) {
                      ptVar9 = *pptVar2;
                    }
                    if (ptVar9 == (tree *)0x0) {
                      iVar17 = ptVar38->depth;
                      goto LAB_0001e868;
                    }
                    bVar25 = ptVar9->label;
                  }
                  ptStack_534 = ptVar47->rlink;
                  if (ptStack_534 == (tree *)0x0) goto LAB_0001f964;
                  _Var14 = hasevery(ptVar32,ptStack_534->llink);
                  if (CONCAT31(extraout_var_47,_Var14) != 0) goto LAB_0001f5cc;
                  iVar17 = ptVar38->depth;
LAB_0001e868:
                  iVar17 = iVar17 - ptVar6->depth;
                  if (iVar17 < ptVar6->shift) {
                    ptVar6->shift = iVar17;
                  }
                  goto LAB_0001e884;
                }
                ptVar46 = ptVar41->llink;
                if (ptVar46 != (tree *)0x0) {
                  _Var14 = hasevery(ptVar32,ptVar46->llink);
                  if (CONCAT31(extraout_var,_Var14) != 0) {
                    ptVar47 = ptVar46->rlink;
                    if (ptVar47 == (tree *)0x0) {
                      if (ptVar32 != (tree *)0x0) {
                        bVar15 = ptVar32->label;
                        goto LAB_0001ed20;
                      }
                    }
                    else {
                      _Var14 = hasevery(ptVar32,ptVar47->llink);
                      if (((CONCAT31(extraout_var_00,_Var14) != 0) &&
                          (_Var14 = hasevery(ptVar32,ptVar47->rlink),
                          CONCAT31(extraout_var_01,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {
                        bVar15 = ptVar32->label;
                        bVar25 = bVar15;
                        ptVar18 = ptVar32;
                        while (bVar25 != ptVar47->label) {
                          pptVar2 = &ptVar18->llink;
                          ptVar18 = ptVar18->rlink;
                          if (ptVar47->label < bVar25) {
                            ptVar18 = *pptVar2;
                          }
                          if (ptVar18 == (tree *)0x0) goto LAB_0001e864;
                          bVar25 = ptVar18->label;
                        }
LAB_0001ed20:
                        ptVar47 = ptVar32;
                        bVar25 = bVar15;
                        while (ptVar46->label != bVar25) {
                          pptVar2 = &ptVar47->llink;
                          ptVar47 = ptVar47->rlink;
                          if (ptVar46->label < bVar25) {
                            ptVar47 = *pptVar2;
                          }
                          if (ptVar47 == (tree *)0x0) {
                            iVar17 = ptVar38->depth;
                            goto LAB_0001e868;
                          }
                          bVar25 = ptVar47->label;
                        }
                        ptVar46 = ptVar41->rlink;
                        if (ptVar46 != (tree *)0x0) goto LAB_0001ea10;
                        bVar26 = ptVar41->label;
                        ptVar41 = ptVar32;
                        bVar25 = bVar15;
                        goto joined_r0x0001f08c;
                      }
                    }
                  }
                  goto LAB_0001e864;
                }
                ptVar46 = ptVar41->rlink;
                if (ptVar46 == (tree *)0x0) {
                  if (ptVar32 == (tree *)0x0) goto LAB_0001e864;
                  bVar15 = ptVar32->label;
                }
                else {
LAB_0001ea10:
                  ptVar47 = ptVar46->llink;
                  if (ptVar47 == (tree *)0x0) {
                    ptVar47 = ptVar46->rlink;
                    if (ptVar47 == (tree *)0x0) {
                      if (ptVar32 != (tree *)0x0) {
                        bVar25 = ptVar32->label;
LAB_0001f52c:
                        bVar26 = ptVar46->label;
                        ptVar46 = ptVar32;
                        bVar15 = bVar25;
                        goto joined_r0x0001f530;
                      }
                    }
                    else {
LAB_0001eecc:
                      _Var14 = hasevery(ptVar32,ptVar47->llink);
                      if (CONCAT31(extraout_var_23,_Var14) != 0) {
                        ptVar18 = ptVar47->rlink;
                        if (ptVar18 == (tree *)0x0) {
                          if (ptVar32 != (tree *)0x0) {
                            bVar25 = ptVar32->label;
                            goto LAB_0001fa60;
                          }
                        }
                        else {
                          _Var14 = hasevery(ptVar32,ptVar18->llink);
                          if (((CONCAT31(extraout_var_24,_Var14) != 0) &&
                              (_Var14 = hasevery(ptVar32,ptVar18->rlink),
                              CONCAT31(extraout_var_25,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {
                            bVar25 = ptVar32->label;
                            bVar15 = bVar25;
                            ptVar9 = ptVar32;
                            while (ptVar18->label != bVar15) {
                              pptVar2 = &ptVar9->llink;
                              ptVar9 = ptVar9->rlink;
                              if (ptVar18->label < bVar15) {
                                ptVar9 = *pptVar2;
                              }
                              if (ptVar9 == (tree *)0x0) {
                                iVar17 = ptVar38->depth;
                                goto LAB_0001e868;
                              }
                              bVar15 = ptVar9->label;
                            }
LAB_0001fa60:
                            ptVar18 = ptVar32;
                            bVar15 = bVar25;
                            while (ptVar47->label != bVar15) {
                              pptVar2 = &ptVar18->llink;
                              ptVar18 = ptVar18->rlink;
                              if (ptVar47->label < bVar15) {
                                ptVar18 = *pptVar2;
                              }
                              if (ptVar18 == (tree *)0x0) {
                                iVar17 = ptVar38->depth;
                                goto LAB_0001e868;
                              }
                              bVar15 = ptVar18->label;
                            }
                            goto LAB_0001f52c;
                          }
                        }
                      }
                    }
                    goto LAB_0001e864;
                  }
                  _Var14 = hasevery(ptVar32,ptVar47->llink);
                  if (((CONCAT31(extraout_var_06,_Var14) == 0) ||
                      (_Var14 = hasevery(ptVar32,ptVar47->rlink),
                      CONCAT31(extraout_var_07,_Var14) == 0)) || (ptVar32 == (tree *)0x0))
                  goto LAB_0001e864;
                  bVar25 = ptVar32->label;
                  bVar15 = bVar25;
                  ptVar18 = ptVar32;
                  while (ptVar47->label != bVar15) {
                    pptVar2 = &ptVar18->llink;
                    ptVar18 = ptVar18->rlink;
                    if (ptVar47->label < bVar15) {
                      ptVar18 = *pptVar2;
                    }
                    if (ptVar18 == (tree *)0x0) {
                      iVar17 = ptVar38->depth;
                      goto LAB_0001e868;
                    }
                    bVar15 = ptVar18->label;
                  }
                  ptVar47 = ptVar46->rlink;
                  if (ptVar47 != (tree *)0x0) goto LAB_0001eecc;
                  bVar26 = ptVar46->label;
                  ptVar46 = ptVar32;
                  bVar15 = bVar25;
joined_r0x0001f530:
                  while (bVar25 != bVar26) {
                    ptVar47 = ptVar46->rlink;
                    if (bVar26 < bVar25) {
                      ptVar47 = ptVar46->llink;
                    }
                    if (ptVar47 == (tree *)0x0) {
                      iVar17 = ptVar38->depth;
                      goto LAB_0001e868;
                    }
                    ptVar46 = ptVar47;
                    bVar25 = ptVar47->label;
                  }
                }
                bVar26 = ptVar41->label;
                ptVar41 = ptVar32;
                bVar25 = bVar15;
joined_r0x0001f08c:
                while (bVar15 != bVar26) {
                  ptVar46 = ptVar41->rlink;
                  if (bVar26 < bVar15) {
                    ptVar46 = ptVar41->llink;
                  }
                  if (ptVar46 == (tree *)0x0) {
                    iVar17 = ptVar38->depth;
                    goto LAB_0001e868;
                  }
                  ptVar41 = ptVar46;
                  bVar15 = ptVar46->label;
                }
                ptVar41 = ptVar36->rlink;
                if (ptVar41 != (tree *)0x0) goto LAB_0001e974;
                bVar26 = ptVar36->label;
                ptVar36 = ptVar32;
                bVar15 = bVar25;
joined_r0x0001ef80:
                while (bVar25 != bVar26) {
                  ptVar41 = ptVar36->rlink;
                  if (bVar26 < bVar25) {
                    ptVar41 = ptVar36->llink;
                  }
                  if (ptVar41 == (tree *)0x0) {
                    iVar17 = ptVar38->depth;
                    goto LAB_0001e868;
                  }
                  ptVar36 = ptVar41;
                  bVar25 = ptVar41->label;
                }
                ptVar36 = ptVar40->rlink;
                if (ptVar36 != (tree *)0x0) goto LAB_0001e8cc;
                bVar25 = ptVar40->label;
              }
              while (bVar25 != bVar15) {
                pptVar2 = &ptVar32->llink;
                ptVar32 = ptVar32->rlink;
                if (bVar25 < bVar15) {
                  ptVar32 = *pptVar2;
                }
                if (ptVar32 == (tree *)0x0) {
                  iVar17 = ptVar38->depth;
                  goto LAB_0001e868;
                }
                bVar15 = ptVar32->label;
              }
            }
LAB_0001e884:
            if ((sVar45 != 0) &&
               (iVar17 = ptVar38->depth - ptVar6->depth, iVar17 < ptVar6->maxshift)) {
              ptVar6->maxshift = iVar17;
            }
            ptVar6 = ptVar6->fail;
          } while (ptVar6 != (trie *)0x0);
          ptVar38 = ptVar38->next;
        }
        else {
LAB_0001dfb4:
          ptVar38 = ptVar38->next;
        }
      } while (ptVar38 != (trie *)0x0);
      if (iVar44 == 1) {
        ptVar38 = kwset->trie;
        goto LAB_000206c8;
      }
    }
  }
LAB_0001dfc8:
  if (pbVar43 == (byte *)0x0) {
    pptVar42 = kwset->next;
    (*(code *)PTR_memset_000563f4)(pptVar42,0,0x400);
    ptVar40 = kwset->trie->links;
    if (ptVar40 != (tree *)0x0) goto LAB_0001dff8;
LAB_0001f81c:
    ptVar38 = (trie *)kwset->next;
    uVar7 = 0;
    uVar29 = 0xfffffffe;
    uVar34 = 0xffffffff;
    do {
      uVar33 = uVar29;
      uVar39 = uVar34;
      if ((*(trie **)ptVar38 != (trie *)0x0) && (uVar33 = uVar7, uVar39 = uVar7, -2 < (int)uVar29))
      {
        if (uVar29 == uVar7) {
          uVar33 = uVar29;
          uVar39 = uVar34;
          if (uVar29 != uVar34) {
            uVar39 = 0xffffffff;
          }
        }
        else {
          uVar33 = uVar29;
          if (uVar29 != uVar34) {
            uVar33 = 0xffffffff;
            uVar39 = uVar34;
          }
        }
      }
      uVar7 = uVar7 + 1;
      ptVar38 = (trie *)((int)ptVar38 + 4);
      uVar29 = uVar33;
      uVar34 = uVar39;
    } while (uVar7 != 0x100);
  }
  else {
    pptVar42 = nextbuf;
    (*(code *)PTR_memset_000563f4)(pptVar42,0,0x400);
    ptVar40 = kwset->trie->links;
    if (ptVar40 != (tree *)0x0) {
LAB_0001dff8:
      ptVar32 = ptVar40->llink;
      if (ptVar32 != (tree *)0x0) {
        ptVar36 = ptVar32->llink;
        if (ptVar36 != (tree *)0x0) {
          ptVar41 = ptVar36->llink;
          if (ptVar41 != (tree *)0x0) {
            if (ptVar41->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->llink->llink,pptVar42);
            }
            if (ptVar41->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->rlink->llink,pptVar42);
            }
            pptVar42[ptVar41->label] = ptVar41->trie;
          }
          ptVar41 = ptVar36->rlink;
          if (ptVar41 != (tree *)0x0) {
            if (ptVar41->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->llink->llink,pptVar42);
            }
            if (ptVar41->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->rlink->llink,pptVar42);
            }
            pptVar42[ptVar41->label] = ptVar41->trie;
          }
          pptVar42[ptVar36->label] = ptVar36->trie;
        }
        ptVar36 = ptVar32->rlink;
        if (ptVar36 != (tree *)0x0) {
          ptVar41 = ptVar36->llink;
          if (ptVar41 != (tree *)0x0) {
            if (ptVar41->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->llink->llink,pptVar42);
            }
            if (ptVar41->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->rlink->llink,pptVar42);
            }
            pptVar42[ptVar41->label] = ptVar41->trie;
          }
          ptVar41 = ptVar36->rlink;
          if (ptVar41 != (tree *)0x0) {
            if (ptVar41->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->llink->llink,pptVar42);
            }
            if (ptVar41->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->rlink->llink,pptVar42);
            }
            pptVar42[ptVar41->label] = ptVar41->trie;
          }
          pptVar42[ptVar36->label] = ptVar36->trie;
        }
        pptVar42[ptVar32->label] = ptVar32->trie;
      }
      ptVar32 = ptVar40->rlink;
      if (ptVar32 != (tree *)0x0) {
        ptVar36 = ptVar32->llink;
        if (ptVar36 != (tree *)0x0) {
          ptVar41 = ptVar36->llink;
          if (ptVar41 != (tree *)0x0) {
            if (ptVar41->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->llink->llink,pptVar42);
            }
            if (ptVar41->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->rlink->llink,pptVar42);
            }
            pptVar42[ptVar41->label] = ptVar41->trie;
          }
          ptVar41 = ptVar36->rlink;
          if (ptVar41 != (tree *)0x0) {
            if (ptVar41->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->llink->llink,pptVar42);
            }
            if (ptVar41->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->rlink->llink,pptVar42);
            }
            pptVar42[ptVar41->label] = ptVar41->trie;
          }
          pptVar42[ptVar36->label] = ptVar36->trie;
        }
        ptVar36 = ptVar32->rlink;
        if (ptVar36 != (tree *)0x0) {
          ptVar41 = ptVar36->llink;
          if (ptVar41 != (tree *)0x0) {
            if (ptVar41->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->llink->llink,pptVar42);
            }
            if (ptVar41->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->rlink->llink,pptVar42);
            }
            pptVar42[ptVar41->label] = ptVar41->trie;
          }
          ptVar41 = ptVar36->rlink;
          if (ptVar41 != (tree *)0x0) {
            if (ptVar41->llink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->llink->llink,pptVar42);
            }
            if (ptVar41->rlink != (tree *)0x0) {
                    /* WARNING: Subroutine does not return */
              treenext(ptVar41->rlink->llink,pptVar42);
            }
            pptVar42[ptVar41->label] = ptVar41->trie;
          }
          pptVar42[ptVar36->label] = ptVar36->trie;
        }
        pptVar42[ptVar32->label] = ptVar32->trie;
      }
      pptVar42[ptVar40->label] = ptVar40->trie;
      if (pbVar43 == (byte *)0x0) goto LAB_0001f81c;
    }
    ptVar38 = (trie *)kwset->next;
    uVar7 = 0;
    uVar29 = 0xfffffffe;
    uVar34 = 0xffffffff;
    do {
      uVar27 = (uint)pbVar43[uVar7];
      ptVar6 = pptVar42[uVar27];
      *(trie **)ptVar38 = ptVar6;
      uVar33 = uVar29;
      uVar39 = uVar34;
      if ((ptVar6 != (trie *)0x0) && (uVar33 = uVar27, uVar39 = uVar7, -2 < (int)uVar29)) {
        if (uVar27 == uVar29) {
          uVar33 = uVar29;
          if (uVar29 != uVar34) {
            uVar39 = 0xffffffff;
          }
        }
        else if ((uVar27 != uVar7) || (uVar33 = uVar29, uVar29 != uVar34)) {
          uVar33 = 0xffffffff;
          uVar39 = uVar34;
        }
      }
      uVar7 = uVar7 + 1;
      ptVar38 = (trie *)((int)ptVar38 + 4);
      uVar29 = uVar33;
      uVar34 = uVar39;
    } while (uVar7 != 0x100);
  }
  kwset->gc1 = uVar33;
  kwset->gc1help = uVar39;
  if (iVar44 != 1) goto LAB_0001e6f8;
  pcVar37 = (kwset->obstack).chunk_limit;
  pcVar10 = (kwset->obstack).next_free;
  uVar29 = kwset->mind;
  if ((uint)((int)pcVar37 - (int)pcVar10) < uVar29) {
    _obstack_newchunk(&kwset->obstack,uVar29);
    pcVar19 = (kwset->obstack).object_base;
    pcVar10 = (kwset->obstack).next_free + uVar29;
    pcVar37 = (kwset->obstack).chunk_limit;
    uVar29 = kwset->mind;
    (kwset->obstack).next_free = pcVar10;
    if (pcVar10 == pcVar19) goto LAB_000209a8;
  }
  else {
    pcVar19 = (kwset->obstack).object_base;
    pcVar10 = pcVar10 + uVar29;
    (kwset->obstack).next_free = pcVar10;
    if (pcVar10 == pcVar19) {
LAB_000209a8:
      (kwset->obstack).field_0x28 = (kwset->obstack).field_0x28 & 0xbf | 0x40;
    }
  }
  uVar34 = (kwset->obstack).alignment_mask;
  p_Var24 = (kwset->obstack).chunk;
  pcVar10 = (char *)((uint)(pcVar10 + uVar34) & ~uVar34);
  (kwset->obstack).next_free = pcVar10;
  if ((uint)((int)pcVar37 - (int)p_Var24) < (uint)((int)pcVar10 - (int)p_Var24)) {
    (kwset->obstack).next_free = pcVar37;
    pcVar10 = pcVar37;
  }
  ptVar38 = kwset->trie;
  (kwset->obstack).object_base = pcVar10;
  kwset->target = pcVar19;
  if (-1 < (int)(uVar29 - 1)) {
    pcVar19[uVar29 - 1] = ptVar38->links->label;
    ptVar38 = ptVar38->next;
    for (iVar44 = uVar29 - 2; iVar44 != -1; iVar44 = iVar44 + -1) {
      kwset->target[iVar44] = ptVar38->links->label;
      ptVar38 = ptVar38->next;
    }
    uVar29 = kwset->mind;
  }
  bVar1 = (int)uVar29 < 2;
  if (!bVar1) {
    pcVar37 = (kwset->obstack).chunk_limit;
    pcVar10 = (kwset->obstack).next_free;
    uVar34 = (uVar29 - 1) * 4;
    if ((uint)((int)pcVar37 - (int)pcVar10) < uVar34) {
      _obstack_newchunk(&kwset->obstack,uVar34);
      uVar29 = kwset->mind;
      pcVar10 = (kwset->obstack).next_free;
      pcVar37 = (kwset->obstack).chunk_limit;
      bVar1 = (int)uVar29 < 2;
    }
    ppVar20 = (ptrdiff_t *)(kwset->obstack).object_base;
    ppVar11 = (ptrdiff_t *)(pcVar10 + uVar34);
    (kwset->obstack).next_free = (char *)ppVar11;
    if (ppVar11 == ppVar20) {
      (kwset->obstack).field_0x28 = (kwset->obstack).field_0x28 & 0xbf | 0x40;
    }
    uVar34 = (kwset->obstack).alignment_mask;
    p_Var24 = (kwset->obstack).chunk;
    pcVar10 = (char *)((int)ppVar11 + uVar34 & ~uVar34);
    (kwset->obstack).next_free = pcVar10;
    if ((uint)((int)pcVar37 - (int)p_Var24) < (uint)((int)pcVar10 - (int)p_Var24)) {
      (kwset->obstack).next_free = pcVar37;
      pcVar10 = pcVar37;
    }
    ptVar38 = kwset->trie;
    (kwset->obstack).object_base = pcVar10;
    kwset->shift = ppVar20;
    ptVar38 = ptVar38->next;
    if (!bVar1) {
      iVar44 = 0;
      do {
        ppVar11 = &ptVar38->shift;
        ptVar38 = ptVar38->next;
        iVar44 = iVar44 + 1;
        *ppVar20 = *ppVar11;
        uVar29 = kwset->mind;
        ppVar20 = ppVar20 + 1;
      } while (iVar44 < (int)(uVar29 - 1));
    }
    bVar15 = kwset->target[uVar29 - 2];
    if (pbVar43 != (byte *)0x0) {
      bVar15 = pbVar43[bVar15];
    }
    kwset->gc2 = bVar15;
  }
LAB_0001e6f8:
  if (pbVar43 != (byte *)0x0) {
    pbVar28 = pbVar43 + 0x100;
    ptVar6 = (trie *)kwset->delta;
    do {
      bVar15 = *pbVar43;
      ptVar38 = (trie *)((int)&ptVar6->accepting + 1);
      pbVar43 = pbVar43 + 1;
      *(uchar *)&ptVar6->accepting = delta[bVar15];
      ptVar6 = ptVar38;
    } while (pbVar28 != pbVar43);
  }
  if (iVar5 == *(int *)puVar3) {
    return;
  }
  (*(code *)PTR___stack_chk_fail_00056494)();
                    /* WARNING: Could not recover jumptable at 0x000209d4. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)ptVar38[0x2a].depth)();
  return;
}



void kwsprep(undefined4 *param_1)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  uint uVar5;
  byte bVar7;
  undefined1 *puVar6;
  int iVar8;
  undefined4 extraout_v1;
  int extraout_v1_00;
  undefined4 extraout_v1_01;
  int extraout_v1_02;
  undefined4 extraout_v1_03;
  int extraout_v1_04;
  undefined4 extraout_v1_05;
  int extraout_v1_06;
  undefined4 extraout_v1_07;
  int extraout_v1_08;
  undefined4 extraout_v1_09;
  int extraout_v1_10;
  undefined4 extraout_v1_11;
  int extraout_v1_12;
  undefined4 extraout_v1_13;
  int extraout_v1_14;
  undefined4 extraout_v1_15;
  int extraout_v1_16;
  undefined4 extraout_v1_17;
  int extraout_v1_18;
  undefined4 extraout_v1_19;
  int extraout_v1_20;
  undefined4 extraout_v1_21;
  int extraout_v1_22;
  undefined4 extraout_v1_23;
  int extraout_v1_24;
  undefined4 extraout_v1_25;
  int extraout_v1_26;
  undefined4 extraout_v1_27;
  int extraout_v1_28;
  undefined4 extraout_v1_29;
  int extraout_v1_30;
  int iVar9;
  byte bVar10;
  byte bVar11;
  uint uVar12;
  byte *pbVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 *puVar16;
  uint uVar17;
  undefined1 *puVar18;
  undefined4 uVar19;
  undefined4 *puVar20;
  uint uVar21;
  undefined4 uVar22;
  int *piVar23;
  uint uVar24;
  int **ppiVar25;
  undefined4 *puVar26;
  undefined4 *puVar27;
  undefined4 *puVar28;
  byte *pbVar29;
  undefined4 *puVar30;
  int iVar31;
  undefined4 *puVar32;
  int *piVar33;
  int *piVar34;
  int *piVar35;
  int *piVar36;
  undefined4 *local_534;
  int *local_530;
  undefined4 auStack_52c [256];
  undefined4 auStack_12c [64];
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_000564b4;
  pbVar29 = (byte *)param_1[0x151];
  local_2c = *(int *)PTR___stack_chk_guard_000564b4;
  puVar30 = param_1 + 0xf;
  if (pbVar29 != (byte *)0x0) {
    puVar30 = auStack_12c;
  }
  iVar31 = param_1[0xb];
  if (iVar31 == 1) {
    piVar23 = (int *)param_1[0xc];
    local_530 = piVar23;
    if (piVar23 != (int *)0x0) {
      ppiVar25 = &local_530;
      do {
        puVar27 = (undefined4 *)piVar23[1];
        if (puVar27 != (undefined4 *)0x0) {
          puVar16 = (undefined4 *)*puVar27;
          if (puVar16 != (undefined4 *)0x0) {
            puVar20 = (undefined4 *)*puVar16;
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              piVar33 = (int *)puVar20[2];
              local_530[3] = (int)piVar33;
              local_530 = piVar33;
            }
            puVar20 = (undefined4 *)puVar16[1];
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              piVar33 = local_530;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 == (int *)0x0) {
                  piVar33 = (int *)puVar28[2];
                  local_530[3] = (int)piVar33;
                }
                else {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  iVar8 = piVar33[2];
                  local_530[3] = iVar8;
                  piVar33 = (int *)puVar28[2];
                  *(int **)(iVar8 + 0xc) = piVar33;
                }
              }
              local_530 = (int *)puVar20[2];
              piVar33[3] = (int)local_530;
            }
            piVar33 = (int *)puVar16[2];
            local_530[3] = (int)piVar33;
            local_530 = piVar33;
          }
          puVar16 = (undefined4 *)puVar27[1];
          piVar33 = local_530;
          if (puVar16 != (undefined4 *)0x0) {
            puVar20 = (undefined4 *)*puVar16;
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              piVar33 = (int *)puVar20[2];
              local_530[3] = (int)piVar33;
              local_530 = piVar33;
            }
            puVar20 = (undefined4 *)puVar16[1];
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[2];
                local_530[3] = (int)piVar33;
                local_530 = piVar33;
              }
              puVar28 = (undefined4 *)puVar20[1];
              if (puVar28 == (undefined4 *)0x0) {
                piVar33 = (int *)puVar20[2];
                local_530[3] = (int)piVar33;
                local_530 = piVar33;
              }
              else {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 == (int *)0x0) {
                  iVar8 = puVar28[2];
                  local_530[3] = iVar8;
                }
                else {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  iVar4 = piVar33[2];
                  local_530[3] = iVar4;
                  iVar8 = puVar28[2];
                  *(int *)(iVar4 + 0xc) = iVar8;
                }
                local_530 = (int *)puVar20[2];
                *(int **)(iVar8 + 0xc) = local_530;
              }
            }
            piVar33 = (int *)puVar16[2];
            local_530[3] = (int)piVar33;
          }
          local_530 = (int *)puVar27[2];
          piVar33[3] = (int)local_530;
        }
        piVar23 = (int *)piVar23[3];
      } while (piVar23 != (int *)0x0);
    }
    uVar21 = param_1[4];
    uVar14 = param_1[0xd];
    if (uVar21 - param_1[3] < uVar14) {
      _obstack_newchunk(param_1);
      puVar18 = (undefined1 *)param_1[2];
      puVar6 = (undefined1 *)(param_1[3] + uVar14);
      uVar21 = param_1[4];
      uVar14 = param_1[0xd];
      param_1[3] = puVar6;
      if (puVar6 == puVar18) goto LAB_00020968;
    }
    else {
      puVar18 = (undefined1 *)param_1[2];
      puVar6 = (undefined1 *)(param_1[3] + uVar14);
      param_1[3] = puVar6;
      if (puVar6 == puVar18) {
LAB_00020968:
        *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;
      }
    }
    uVar5 = (uint)(puVar6 + param_1[6]) & ~param_1[6];
    param_1[3] = uVar5;
    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {
      param_1[3] = uVar21;
      uVar5 = uVar21;
    }
    iVar8 = param_1[0xc];
    param_1[2] = uVar5;
    param_1[0x14f] = puVar18;
    if (0 < (int)uVar14) {
      *puVar18 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);
      iVar8 = *(int *)(iVar8 + 0xc);
      if (1 < (int)param_1[0xd]) {
        iVar4 = 1;
        do {
          puVar6 = (undefined1 *)(param_1[0x14f] + iVar4);
          iVar4 = iVar4 + 1;
          *puVar6 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);
          iVar8 = *(int *)(iVar8 + 0xc);
        } while (iVar4 < (int)param_1[0xd]);
      }
    }
    puVar20 = (undefined4 *)kwsalloc(param_1[0x151]);
    uVar19 = param_1[0xd];
    uVar15 = param_1[0x14f];
    puVar20[0x155] = PTR_LAB_00056238 + -0x47f8;
    kwsincr(puVar20,uVar15,uVar19);
    _obstack_free(param_1,0);
    puVar27 = puVar20;
    puVar16 = param_1;
    do {
      puVar32 = puVar16;
      puVar28 = puVar27;
      puVar27 = puVar28 + 4;
      uVar22 = puVar28[1];
      uVar19 = puVar28[2];
      uVar15 = puVar28[3];
      *puVar32 = *puVar28;
      puVar32[1] = uVar22;
      puVar32[2] = uVar19;
      puVar32[3] = uVar15;
      puVar3 = PTR_free_000564c0;
      puVar16 = puVar32 + 4;
    } while (puVar27 != puVar20 + 0x154);
    uVar15 = puVar28[5];
    puVar32[4] = *puVar27;
    puVar32[5] = uVar15;
    (*(code *)puVar3)(puVar20);
    iVar8 = 0xff;
    if ((int)param_1[0xd] < 0x100) {
      iVar8 = param_1[0xd];
    }
    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);
    piVar23 = (int *)param_1[0xc];
    local_530 = piVar23;
    if (piVar23 != (int *)0x0) goto LAB_0001d27c;
LAB_000206c8:
    for (iVar8 = piVar23[3]; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0xc)) {
      while( true ) {
        iVar9 = *(int *)(*(int *)(iVar8 + 8) + 0x1c);
        iVar4 = *(int *)(iVar8 + 0x1c);
        if (iVar9 < *(int *)(iVar8 + 0x1c)) {
          *(int *)(iVar8 + 0x1c) = iVar9;
          iVar4 = iVar9;
        }
        if (*(int *)(iVar8 + 0x18) <= iVar4) break;
        *(int *)(iVar8 + 0x18) = iVar4;
        iVar8 = *(int *)(iVar8 + 0xc);
        if (iVar8 == 0) goto LAB_0001dfc8;
      }
    }
  }
  else {
    iVar8 = 0xff;
    if ((int)param_1[0xd] < 0x100) {
      iVar8 = param_1[0xd];
    }
    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);
    piVar23 = (int *)param_1[0xc];
    local_530 = piVar23;
    if (piVar23 != (int *)0x0) {
LAB_0001d27c:
      ppiVar25 = &local_530;
      local_530 = piVar23;
      do {
        puVar27 = (undefined4 *)piVar23[1];
        if (puVar27 != (undefined4 *)0x0) {
          puVar16 = (undefined4 *)*puVar27;
          if (puVar16 != (undefined4 *)0x0) {
            puVar20 = (undefined4 *)*puVar16;
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              piVar33 = (int *)puVar20[2];
              local_530[3] = (int)piVar33;
              local_530 = piVar33;
            }
            puVar20 = (undefined4 *)puVar16[1];
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              piVar33 = local_530;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 == (int *)0x0) {
                  piVar33 = (int *)puVar28[2];
                  local_530[3] = (int)piVar33;
                }
                else {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  iVar8 = piVar33[2];
                  local_530[3] = iVar8;
                  piVar33 = (int *)puVar28[2];
                  *(int **)(iVar8 + 0xc) = piVar33;
                }
              }
              local_530 = (int *)puVar20[2];
              piVar33[3] = (int)local_530;
            }
            piVar33 = (int *)puVar16[2];
            local_530[3] = (int)piVar33;
            local_530 = piVar33;
          }
          puVar16 = (undefined4 *)puVar27[1];
          piVar33 = local_530;
          if (puVar16 != (undefined4 *)0x0) {
            puVar20 = (undefined4 *)*puVar16;
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              piVar33 = local_530;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  piVar34 = local_530;
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                    piVar34 = local_530;
                  }
                  local_530 = (int *)piVar33[2];
                  piVar34[3] = (int)local_530;
                }
                piVar33 = (int *)puVar28[2];
                local_530[3] = (int)piVar33;
              }
              local_530 = (int *)puVar20[2];
              piVar33[3] = (int)local_530;
            }
            puVar20 = (undefined4 *)puVar16[1];
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[2];
                local_530[3] = (int)piVar33;
                local_530 = piVar33;
              }
              puVar28 = (undefined4 *)puVar20[1];
              if (puVar28 == (undefined4 *)0x0) {
                piVar33 = (int *)puVar20[2];
                local_530[3] = (int)piVar33;
                local_530 = piVar33;
              }
              else {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 == (int *)0x0) {
                  iVar8 = puVar28[2];
                  local_530[3] = iVar8;
                }
                else {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  iVar4 = piVar33[2];
                  local_530[3] = iVar4;
                  iVar8 = puVar28[2];
                  *(int *)(iVar4 + 0xc) = iVar8;
                }
                local_530 = (int *)puVar20[2];
                *(int **)(iVar8 + 0xc) = local_530;
              }
            }
            piVar33 = (int *)puVar16[2];
            local_530[3] = (int)piVar33;
          }
          local_530 = (int *)puVar27[2];
          puVar27 = (undefined4 *)piVar23[1];
          iVar8 = piVar23[5];
          piVar33[3] = (int)local_530;
          if (puVar27 != (undefined4 *)0x0) {
            puVar16 = (undefined4 *)*puVar27;
            if (puVar16 != (undefined4 *)0x0) {
              puVar20 = (undefined4 *)*puVar16;
              if (puVar20 != (undefined4 *)0x0) {
                puVar28 = (undefined4 *)*puVar20;
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1,puVar30);
                    iVar8 = extraout_v1_00;
                    if (extraout_v1_00 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_00;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_01,puVar30);
                    iVar8 = extraout_v1_02;
                    if (extraout_v1_02 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_02;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                puVar28 = (undefined4 *)puVar20[1];
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_03,puVar30);
                    iVar8 = extraout_v1_04;
                    if (extraout_v1_04 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_04;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_05,puVar30);
                    iVar8 = extraout_v1_06;
                    if (extraout_v1_06 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_06;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {
                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;
                }
              }
              puVar20 = (undefined4 *)puVar16[1];
              if (puVar20 != (undefined4 *)0x0) {
                puVar28 = (undefined4 *)*puVar20;
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_07,puVar30);
                    iVar8 = extraout_v1_08;
                    if (extraout_v1_08 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_08;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_09,puVar30);
                    iVar8 = extraout_v1_10;
                    if (extraout_v1_10 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_10;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                puVar28 = (undefined4 *)puVar20[1];
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_11,puVar30);
                    iVar8 = extraout_v1_12;
                    if (extraout_v1_12 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_12;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_13,puVar30);
                    iVar8 = extraout_v1_14;
                    if (extraout_v1_14 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_14;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {
                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;
                }
              }
              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {
                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;
              }
            }
            puVar16 = (undefined4 *)puVar27[1];
            if (puVar16 != (undefined4 *)0x0) {
              puVar20 = (undefined4 *)*puVar16;
              if (puVar20 != (undefined4 *)0x0) {
                puVar28 = (undefined4 *)*puVar20;
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_15,puVar30);
                    iVar8 = extraout_v1_16;
                    if (extraout_v1_16 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_16;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_17,puVar30);
                    iVar8 = extraout_v1_18;
                    if (extraout_v1_18 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_18;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                puVar28 = (undefined4 *)puVar20[1];
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_19,puVar30);
                    iVar8 = extraout_v1_20;
                    if (extraout_v1_20 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_20;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_21,puVar30);
                    iVar8 = extraout_v1_22;
                    if (extraout_v1_22 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_22;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {
                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;
                }
              }
              puVar20 = (undefined4 *)puVar16[1];
              if (puVar20 != (undefined4 *)0x0) {
                puVar28 = (undefined4 *)*puVar20;
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_23,puVar30);
                    iVar8 = extraout_v1_24;
                    if (extraout_v1_24 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_24;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_25,puVar30);
                    iVar8 = extraout_v1_26;
                    if (extraout_v1_26 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_26;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                puVar28 = (undefined4 *)puVar20[1];
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_27,puVar30);
                    iVar8 = extraout_v1_28;
                    if (extraout_v1_28 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_28;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_29,puVar30);
                    iVar8 = extraout_v1_30;
                    if (extraout_v1_30 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_30;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {
                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;
                }
              }
              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {
                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;
              }
            }
            if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3))) {
              *(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3)) = (byte)iVar8;
            }
            puVar27 = (undefined4 *)piVar23[1];
          }
        }
        FUN_0001acd0(puVar27,piVar23[4],param_1[0xc],iVar31 == 1);
        if (iVar31 == 1) {
          iVar8 = param_1[0xd];
          iVar4 = piVar23[4];
          piVar23[6] = iVar8;
          piVar23[7] = iVar8;
          if (iVar4 == 0) goto LAB_0001dfb4;
          puVar27 = (undefined4 *)piVar23[1];
          iVar8 = *piVar23;
          do {
            if (puVar27 != (undefined4 *)0x0) {
              puVar16 = (undefined4 *)*puVar27;
              piVar33 = *(int **)(iVar4 + 4);
              if (puVar16 == (undefined4 *)0x0) {
                puVar16 = (undefined4 *)puVar27[1];
                if (puVar16 == (undefined4 *)0x0) {
                  if (piVar33 == (int *)0x0) goto LAB_0001e864;
                  bVar7 = *(byte *)(piVar33 + 3);
                }
                else {
LAB_0001e8cc:
                  puVar20 = (undefined4 *)*puVar16;
                  if (puVar20 == (undefined4 *)0x0) {
                    puVar20 = (undefined4 *)puVar16[1];
                    if (puVar20 == (undefined4 *)0x0) {
                      if (piVar33 == (int *)0x0) goto LAB_0001e864;
                      bVar10 = *(byte *)(piVar33 + 3);
                    }
                    else {
LAB_0001eaa0:
                      puVar28 = (undefined4 *)*puVar20;
                      if (puVar28 != (undefined4 *)0x0) {
                        puVar32 = (undefined4 *)*puVar28;
                        if (puVar32 == (undefined4 *)0x0) {
                          piVar34 = (int *)puVar28[1];
                          if (piVar34 == (int *)0x0) {
                            if (piVar33 == (int *)0x0) goto LAB_0001e864;
                            bVar7 = *(byte *)(piVar33 + 3);
LAB_0001fbdc:
                            bVar10 = *(byte *)(puVar28 + 3);
                            piVar34 = piVar33;
                            bVar11 = bVar7;
joined_r0x0001fbe0:
                            while (bVar7 != bVar10) {
                              piVar35 = (int *)piVar34[1];
                              if (bVar10 < bVar7) {
                                piVar35 = (int *)*piVar34;
                              }
                              if (piVar35 == (int *)0x0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
                              piVar34 = piVar35;
                              bVar7 = *(byte *)(piVar35 + 3);
                            }
                            puVar28 = (undefined4 *)puVar20[1];
                            if (puVar28 != (undefined4 *)0x0) goto LAB_0001efdc;
                            bVar7 = *(byte *)(puVar20 + 3);
                            piVar34 = piVar33;
                            bVar10 = bVar11;
                            goto joined_r0x0001fb94;
                          }
LAB_0001f218:
                          puVar32 = (undefined4 *)*piVar34;
                          if (puVar32 == (undefined4 *)0x0) {
                            local_534 = (undefined4 *)piVar34[1];
                            if (local_534 == (undefined4 *)0x0) {
                              if (piVar33 != (int *)0x0) {
                                bVar7 = *(byte *)(piVar33 + 3);
                                goto LAB_0001f8cc;
                              }
                            }
                            else {
                              iVar9 = FUN_0001ae90(piVar33,*local_534);
                              if (iVar9 != 0) goto LAB_0001f764;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*puVar32);
                            if (((iVar9 != 0) &&
                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&
                               (piVar33 != (int *)0x0)) {
                              bVar7 = *(byte *)(piVar33 + 3);
                              bVar10 = bVar7;
                              piVar35 = piVar33;
                              while (*(byte *)(puVar32 + 3) != bVar10) {
                                piVar36 = (int *)*piVar35;
                                piVar35 = (int *)piVar35[1];
                                if (*(byte *)(puVar32 + 3) < bVar10) {
                                  piVar35 = piVar36;
                                }
                                if (piVar35 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar35 + 3);
                              }
                              local_534 = (undefined4 *)piVar34[1];
                              if (local_534 != (undefined4 *)0x0) {
                                iVar9 = FUN_0001ae90(piVar33,*local_534);
                                if (iVar9 == 0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
LAB_0001f764:
                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);
                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;
                                bVar7 = *(byte *)(piVar33 + 3);
                                bVar10 = bVar7;
                                piVar35 = piVar33;
                                while (bVar10 != *(byte *)(local_534 + 3)) {
                                  piVar36 = (int *)*piVar35;
                                  piVar35 = (int *)piVar35[1];
                                  if (*(byte *)(local_534 + 3) < bVar10) {
                                    piVar35 = piVar36;
                                  }
                                  if (piVar35 == (int *)0x0) {
                                    iVar9 = piVar23[5];
                                    goto LAB_0001e868;
                                  }
                                  bVar10 = *(byte *)(piVar35 + 3);
                                }
                              }
LAB_0001f8cc:
                              piVar35 = piVar33;
                              bVar10 = bVar7;
                              while (bVar10 != *(byte *)(piVar34 + 3)) {
                                piVar36 = (int *)*piVar35;
                                piVar35 = (int *)piVar35[1];
                                if (*(byte *)(piVar34 + 3) < bVar10) {
                                  piVar35 = piVar36;
                                }
                                if (piVar35 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar35 + 3);
                              }
                              goto LAB_0001fbdc;
                            }
                          }
                        }
                        else {
                          iVar9 = FUN_0001ae90(piVar33,*puVar32);
                          if (iVar9 != 0) {
                            puVar26 = (undefined4 *)puVar32[1];
                            if (puVar26 == (undefined4 *)0x0) {
                              if (piVar33 != (int *)0x0) {
                                bVar7 = *(byte *)(piVar33 + 3);
                                goto LAB_0001f9c8;
                              }
                            }
                            else {
                              iVar9 = FUN_0001ae90(piVar33,*puVar26);
                              if (((iVar9 != 0) &&
                                  (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&
                                 (piVar33 != (int *)0x0)) {
                                bVar7 = *(byte *)(piVar33 + 3);
                                bVar10 = bVar7;
                                piVar34 = piVar33;
                                while (*(byte *)(puVar26 + 3) != bVar10) {
                                  piVar35 = (int *)*piVar34;
                                  piVar34 = (int *)piVar34[1];
                                  if (*(byte *)(puVar26 + 3) < bVar10) {
                                    piVar34 = piVar35;
                                  }
                                  if (piVar34 == (int *)0x0) {
                                    iVar9 = piVar23[5];
                                    goto LAB_0001e868;
                                  }
                                  bVar10 = *(byte *)(piVar34 + 3);
                                }
LAB_0001f9c8:
                                piVar34 = piVar33;
                                bVar10 = bVar7;
                                while (bVar10 != *(byte *)(puVar32 + 3)) {
                                  piVar35 = (int *)*piVar34;
                                  piVar34 = (int *)piVar34[1];
                                  if (*(byte *)(puVar32 + 3) < bVar10) {
                                    piVar34 = piVar35;
                                  }
                                  if (piVar34 == (int *)0x0) {
                                    iVar9 = piVar23[5];
                                    goto LAB_0001e868;
                                  }
                                  bVar10 = *(byte *)(piVar34 + 3);
                                }
                                piVar34 = (int *)puVar28[1];
                                if (piVar34 != (int *)0x0) goto LAB_0001f218;
                                bVar10 = *(byte *)(puVar28 + 3);
                                piVar34 = piVar33;
                                bVar11 = bVar7;
                                goto joined_r0x0001fbe0;
                              }
                            }
                          }
                        }
LAB_0001e864:
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      puVar28 = (undefined4 *)puVar20[1];
                      if (puVar28 == (undefined4 *)0x0) {
                        if (piVar33 == (int *)0x0) goto LAB_0001e864;
                        bVar11 = *(byte *)(piVar33 + 3);
                      }
                      else {
LAB_0001efdc:
                        piVar34 = (int *)*puVar28;
                        if (piVar34 != (int *)0x0) {
                          puVar32 = (undefined4 *)*piVar34;
                          if (puVar32 == (undefined4 *)0x0) {
                            local_534 = (undefined4 *)piVar34[1];
                            if (local_534 == (undefined4 *)0x0) {
                              if (piVar33 != (int *)0x0) {
                                bVar7 = *(byte *)(piVar33 + 3);
                                goto LAB_0001f918;
                              }
                            }
                            else {
                              iVar9 = FUN_0001ae90(piVar33,*local_534);
                              if (iVar9 != 0) goto LAB_0001f654;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*puVar32);
                            if (((iVar9 != 0) &&
                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&
                               (piVar33 != (int *)0x0)) {
                              bVar7 = *(byte *)(piVar33 + 3);
                              bVar10 = bVar7;
                              piVar35 = piVar33;
                              while (*(byte *)(puVar32 + 3) != bVar10) {
                                piVar36 = (int *)*piVar35;
                                piVar35 = (int *)piVar35[1];
                                if (*(byte *)(puVar32 + 3) < bVar10) {
                                  piVar35 = piVar36;
                                }
                                if (piVar35 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar35 + 3);
                              }
                              local_534 = (undefined4 *)piVar34[1];
                              if (local_534 != (undefined4 *)0x0) {
                                iVar9 = FUN_0001ae90(piVar33,*local_534);
                                if (iVar9 == 0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
LAB_0001f654:
                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);
                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;
                                bVar7 = *(byte *)(piVar33 + 3);
                                bVar10 = bVar7;
                                piVar35 = piVar33;
                                while (bVar10 != *(byte *)(local_534 + 3)) {
                                  piVar36 = (int *)*piVar35;
                                  piVar35 = (int *)piVar35[1];
                                  if (*(byte *)(local_534 + 3) < bVar10) {
                                    piVar35 = piVar36;
                                  }
                                  if (piVar35 == (int *)0x0) {
                                    iVar9 = piVar23[5];
                                    goto LAB_0001e868;
                                  }
                                  bVar10 = *(byte *)(piVar35 + 3);
                                }
                              }
LAB_0001f918:
                              piVar35 = piVar33;
                              bVar10 = bVar7;
                              while (bVar10 != *(byte *)(piVar34 + 3)) {
                                piVar36 = (int *)*piVar35;
                                piVar35 = (int *)piVar35[1];
                                if (*(byte *)(piVar34 + 3) < bVar10) {
                                  piVar35 = piVar36;
                                }
                                if (piVar35 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar35 + 3);
                              }
                              piVar34 = (int *)puVar28[1];
                              if (piVar34 != (int *)0x0) goto LAB_0001f3d4;
                              bVar10 = *(byte *)(puVar28 + 3);
                              piVar34 = piVar33;
                              bVar11 = bVar7;
                              goto joined_r0x00020768;
                            }
                          }
                          goto LAB_0001e864;
                        }
                        piVar34 = (int *)puVar28[1];
                        if (piVar34 == (int *)0x0) {
                          if (piVar33 == (int *)0x0) goto LAB_0001e864;
                          bVar7 = *(byte *)(piVar33 + 3);
                        }
                        else {
LAB_0001f3d4:
                          puVar32 = (undefined4 *)*piVar34;
                          if (puVar32 == (undefined4 *)0x0) {
                            puVar32 = (undefined4 *)piVar34[1];
                            if (puVar32 == (undefined4 *)0x0) {
                              if (piVar33 != (int *)0x0) {
                                bVar10 = *(byte *)(piVar33 + 3);
                                goto LAB_00020814;
                              }
                            }
                            else {
LAB_0001fcfc:
                              iVar9 = FUN_0001ae90(piVar33,*puVar32);
                              if (((iVar9 != 0) &&
                                  (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&
                                 (piVar33 != (int *)0x0)) {
                                bVar10 = *(byte *)(piVar33 + 3);
                                bVar7 = bVar10;
                                piVar35 = piVar33;
                                while (*(byte *)(puVar32 + 3) != bVar7) {
                                  piVar36 = (int *)*piVar35;
                                  piVar35 = (int *)piVar35[1];
                                  if (*(byte *)(puVar32 + 3) < bVar7) {
                                    piVar35 = piVar36;
                                  }
                                  if (piVar35 == (int *)0x0) {
                                    iVar9 = piVar23[5];
                                    goto LAB_0001e868;
                                  }
                                  bVar7 = *(byte *)(piVar35 + 3);
                                }
LAB_00020814:
                                bVar11 = *(byte *)(piVar34 + 3);
                                piVar34 = piVar33;
                                bVar7 = bVar10;
                                goto joined_r0x00020818;
                              }
                            }
                            goto LAB_0001e864;
                          }
                          iVar9 = FUN_0001ae90(piVar33,*puVar32);
                          if (((iVar9 == 0) ||
                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||
                             (piVar33 == (int *)0x0)) goto LAB_0001e864;
                          bVar10 = *(byte *)(piVar33 + 3);
                          bVar7 = bVar10;
                          piVar35 = piVar33;
                          while (bVar7 != *(byte *)(puVar32 + 3)) {
                            piVar36 = (int *)*piVar35;
                            piVar35 = (int *)piVar35[1];
                            if (*(byte *)(puVar32 + 3) < bVar7) {
                              piVar35 = piVar36;
                            }
                            if (piVar35 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            bVar7 = *(byte *)(piVar35 + 3);
                          }
                          puVar32 = (undefined4 *)piVar34[1];
                          if (puVar32 != (undefined4 *)0x0) goto LAB_0001fcfc;
                          bVar11 = *(byte *)(piVar34 + 3);
                          piVar34 = piVar33;
                          bVar7 = bVar10;
joined_r0x00020818:
                          while (bVar10 != bVar11) {
                            piVar35 = (int *)piVar34[1];
                            if (bVar11 < bVar10) {
                              piVar35 = (int *)*piVar34;
                            }
                            if (piVar35 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            piVar34 = piVar35;
                            bVar10 = *(byte *)(piVar35 + 3);
                          }
                        }
                        bVar10 = *(byte *)(puVar28 + 3);
                        piVar34 = piVar33;
                        bVar11 = bVar7;
joined_r0x00020768:
                        while (bVar10 != bVar7) {
                          piVar35 = (int *)piVar34[1];
                          if (bVar10 < bVar7) {
                            piVar35 = (int *)*piVar34;
                          }
                          if (piVar35 == (int *)0x0) {
                            iVar9 = piVar23[5];
                            goto LAB_0001e868;
                          }
                          piVar34 = piVar35;
                          bVar7 = *(byte *)(piVar35 + 3);
                        }
                      }
                      bVar7 = *(byte *)(puVar20 + 3);
                      piVar34 = piVar33;
                      bVar10 = bVar11;
joined_r0x0001fb94:
                      while (bVar7 != bVar11) {
                        piVar35 = (int *)piVar34[1];
                        if (bVar7 < bVar11) {
                          piVar35 = (int *)*piVar34;
                        }
                        if (piVar35 == (int *)0x0) {
                          iVar9 = piVar23[5];
                          goto LAB_0001e868;
                        }
                        piVar34 = piVar35;
                        bVar11 = *(byte *)(piVar35 + 3);
                      }
                    }
                    bVar11 = *(byte *)(puVar16 + 3);
                    piVar34 = piVar33;
                    bVar7 = bVar10;
                  }
                  else {
                    puVar28 = (undefined4 *)*puVar20;
                    if (puVar28 == (undefined4 *)0x0) {
                      puVar28 = (undefined4 *)puVar20[1];
                      if (puVar28 == (undefined4 *)0x0) {
                        if (piVar33 == (int *)0x0) goto LAB_0001e864;
                        bVar7 = *(byte *)(piVar33 + 3);
LAB_0001f374:
                        bVar11 = *(byte *)(puVar20 + 3);
                        piVar34 = piVar33;
                        bVar10 = bVar7;
                        goto joined_r0x0001f378;
                      }
LAB_0001eb64:
                      puVar32 = (undefined4 *)*puVar28;
                      if (puVar32 == (undefined4 *)0x0) {
                        piVar34 = (int *)puVar28[1];
                        if (piVar34 == (int *)0x0) {
                          if (piVar33 == (int *)0x0) goto LAB_0001e864;
                          bVar10 = *(byte *)(piVar33 + 3);
LAB_0001fc3c:
                          bVar11 = *(byte *)(puVar28 + 3);
                          piVar34 = piVar33;
                          bVar7 = bVar10;
joined_r0x0001fc40:
                          while (bVar10 != bVar11) {
                            piVar35 = (int *)piVar34[1];
                            if (bVar11 < bVar10) {
                              piVar35 = (int *)*piVar34;
                            }
                            if (piVar35 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            piVar34 = piVar35;
                            bVar10 = *(byte *)(piVar35 + 3);
                          }
                          goto LAB_0001f374;
                        }
LAB_0001f180:
                        puVar32 = (undefined4 *)*piVar34;
                        if (puVar32 == (undefined4 *)0x0) {
                          local_534 = (undefined4 *)piVar34[1];
                          if (local_534 == (undefined4 *)0x0) {
                            if (piVar33 != (int *)0x0) {
                              bVar10 = *(byte *)(piVar33 + 3);
                              goto LAB_0001f880;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*local_534);
                            if (iVar9 != 0) goto LAB_0001f6dc;
                          }
                        }
                        else {
                          iVar9 = FUN_0001ae90(piVar33,*puVar32);
                          if (((iVar9 != 0) &&
                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&
                             (piVar33 != (int *)0x0)) {
                            bVar10 = *(byte *)(piVar33 + 3);
                            bVar7 = bVar10;
                            piVar35 = piVar33;
                            while (bVar7 != *(byte *)(puVar32 + 3)) {
                              piVar36 = (int *)*piVar35;
                              piVar35 = (int *)piVar35[1];
                              if (*(byte *)(puVar32 + 3) < bVar7) {
                                piVar35 = piVar36;
                              }
                              if (piVar35 == (int *)0x0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
                              bVar7 = *(byte *)(piVar35 + 3);
                            }
                            local_534 = (undefined4 *)piVar34[1];
                            if (local_534 != (undefined4 *)0x0) {
                              iVar9 = FUN_0001ae90(piVar33,*local_534);
                              if (iVar9 == 0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
LAB_0001f6dc:
                              iVar9 = FUN_0001ae90(piVar33,local_534[1]);
                              if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;
                              bVar10 = *(byte *)(piVar33 + 3);
                              bVar7 = bVar10;
                              piVar35 = piVar33;
                              while (*(byte *)(local_534 + 3) != bVar7) {
                                piVar36 = (int *)*piVar35;
                                piVar35 = (int *)piVar35[1];
                                if (*(byte *)(local_534 + 3) < bVar7) {
                                  piVar35 = piVar36;
                                }
                                if (piVar35 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar7 = *(byte *)(piVar35 + 3);
                              }
                            }
LAB_0001f880:
                            piVar35 = piVar33;
                            bVar7 = bVar10;
                            while (*(byte *)(piVar34 + 3) != bVar7) {
                              piVar36 = (int *)*piVar35;
                              piVar35 = (int *)piVar35[1];
                              if (*(byte *)(piVar34 + 3) < bVar7) {
                                piVar35 = piVar36;
                              }
                              if (piVar35 == (int *)0x0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
                              bVar7 = *(byte *)(piVar35 + 3);
                            }
                            goto LAB_0001fc3c;
                          }
                        }
                      }
                      else {
                        iVar9 = FUN_0001ae90(piVar33,*puVar32);
                        if (iVar9 != 0) {
                          puVar26 = (undefined4 *)puVar32[1];
                          if (puVar26 == (undefined4 *)0x0) {
                            if (piVar33 != (int *)0x0) {
                              bVar10 = *(byte *)(piVar33 + 3);
                              goto LAB_0001faac;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*puVar26);
                            if (((iVar9 != 0) &&
                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&
                               (piVar33 != (int *)0x0)) {
                              bVar10 = *(byte *)(piVar33 + 3);
                              bVar7 = bVar10;
                              piVar34 = piVar33;
                              while (bVar7 != *(byte *)(puVar26 + 3)) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar26 + 3) < bVar7) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar7 = *(byte *)(piVar34 + 3);
                              }
LAB_0001faac:
                              piVar34 = piVar33;
                              bVar7 = bVar10;
                              while (*(byte *)(puVar32 + 3) != bVar7) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar32 + 3) < bVar7) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar7 = *(byte *)(piVar34 + 3);
                              }
                              piVar34 = (int *)puVar28[1];
                              if (piVar34 != (int *)0x0) goto LAB_0001f180;
                              bVar11 = *(byte *)(puVar28 + 3);
                              piVar34 = piVar33;
                              bVar7 = bVar10;
                              goto joined_r0x0001fc40;
                            }
                          }
                        }
                      }
                      goto LAB_0001e864;
                    }
                    puVar32 = (undefined4 *)*puVar28;
                    if (puVar32 == (undefined4 *)0x0) {
                      puVar32 = (undefined4 *)puVar28[1];
                      if (puVar32 == (undefined4 *)0x0) {
                        if (piVar33 != (int *)0x0) {
                          bVar10 = *(byte *)(piVar33 + 3);
LAB_0001f46c:
                          bVar11 = *(byte *)(puVar28 + 3);
                          piVar34 = piVar33;
                          bVar7 = bVar10;
                          goto joined_r0x0001f470;
                        }
                      }
                      else {
LAB_0001ed6c:
                        iVar9 = FUN_0001ae90(piVar33,*puVar32);
                        if (iVar9 != 0) {
                          puVar26 = (undefined4 *)puVar32[1];
                          if (puVar26 == (undefined4 *)0x0) {
                            if (piVar33 != (int *)0x0) {
                              bVar10 = *(byte *)(piVar33 + 3);
                              goto LAB_0001fb44;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*puVar26);
                            if (((iVar9 != 0) &&
                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&
                               (piVar33 != (int *)0x0)) {
                              bVar10 = *(byte *)(piVar33 + 3);
                              bVar7 = bVar10;
                              piVar34 = piVar33;
                              while (bVar7 != *(byte *)(puVar26 + 3)) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar26 + 3) < bVar7) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar7 = *(byte *)(piVar34 + 3);
                              }
LAB_0001fb44:
                              piVar34 = piVar33;
                              bVar7 = bVar10;
                              while (*(byte *)(puVar32 + 3) != bVar7) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar32 + 3) < bVar7) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar7 = *(byte *)(piVar34 + 3);
                              }
                              goto LAB_0001f46c;
                            }
                          }
                        }
                      }
                      goto LAB_0001e864;
                    }
                    iVar9 = FUN_0001ae90(piVar33,*puVar32);
                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||
                       (piVar33 == (int *)0x0)) goto LAB_0001e864;
                    bVar10 = *(byte *)(piVar33 + 3);
                    bVar7 = bVar10;
                    piVar34 = piVar33;
                    while (*(byte *)(puVar32 + 3) != bVar7) {
                      piVar35 = (int *)*piVar34;
                      piVar34 = (int *)piVar34[1];
                      if (*(byte *)(puVar32 + 3) < bVar7) {
                        piVar34 = piVar35;
                      }
                      if (piVar34 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      bVar7 = *(byte *)(piVar34 + 3);
                    }
                    puVar32 = (undefined4 *)puVar28[1];
                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ed6c;
                    bVar11 = *(byte *)(puVar28 + 3);
                    piVar34 = piVar33;
                    bVar7 = bVar10;
joined_r0x0001f470:
                    while (bVar10 != bVar11) {
                      piVar35 = (int *)piVar34[1];
                      if (bVar11 < bVar10) {
                        piVar35 = (int *)*piVar34;
                      }
                      if (piVar35 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      piVar34 = piVar35;
                      bVar10 = *(byte *)(piVar35 + 3);
                    }
                    puVar28 = (undefined4 *)puVar20[1];
                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001eb64;
                    bVar11 = *(byte *)(puVar20 + 3);
                    piVar34 = piVar33;
                    bVar10 = bVar7;
joined_r0x0001f378:
                    while (bVar7 != bVar11) {
                      piVar35 = (int *)piVar34[1];
                      if (bVar11 < bVar7) {
                        piVar35 = (int *)*piVar34;
                      }
                      if (piVar35 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      piVar34 = piVar35;
                      bVar7 = *(byte *)(piVar35 + 3);
                    }
                    puVar20 = (undefined4 *)puVar16[1];
                    if (puVar20 != (undefined4 *)0x0) goto LAB_0001eaa0;
                    bVar11 = *(byte *)(puVar16 + 3);
                    piVar34 = piVar33;
                    bVar7 = bVar10;
                  }
                  while (bVar11 != bVar10) {
                    piVar35 = (int *)piVar34[1];
                    if (bVar11 < bVar10) {
                      piVar35 = (int *)*piVar34;
                    }
                    if (piVar35 == (int *)0x0) {
                      iVar9 = piVar23[5];
                      goto LAB_0001e868;
                    }
                    piVar34 = piVar35;
                    bVar10 = *(byte *)(piVar35 + 3);
                  }
                }
                bVar10 = *(byte *)(puVar27 + 3);
              }
              else {
                puVar20 = (undefined4 *)*puVar16;
                if (puVar20 == (undefined4 *)0x0) {
                  puVar20 = (undefined4 *)puVar16[1];
                  if (puVar20 == (undefined4 *)0x0) {
                    if (piVar33 == (int *)0x0) goto LAB_0001e864;
                    bVar10 = *(byte *)(piVar33 + 3);
LAB_0001ef7c:
                    bVar11 = *(byte *)(puVar16 + 3);
                    piVar34 = piVar33;
                    bVar7 = bVar10;
                    goto joined_r0x0001ef80;
                  }
LAB_0001e974:
                  puVar28 = (undefined4 *)*puVar20;
                  if (puVar28 != (undefined4 *)0x0) {
                    puVar32 = (undefined4 *)*puVar28;
                    if (puVar32 == (undefined4 *)0x0) {
                      puVar32 = (undefined4 *)puVar28[1];
                      if (puVar32 == (undefined4 *)0x0) {
                        if (piVar33 != (int *)0x0) {
                          bVar7 = *(byte *)(piVar33 + 3);
LAB_0001f4cc:
                          bVar10 = *(byte *)(puVar28 + 3);
                          piVar34 = piVar33;
                          bVar11 = bVar7;
                          goto joined_r0x0001f4d0;
                        }
                      }
                      else {
LAB_0001ee1c:
                        iVar9 = FUN_0001ae90(piVar33,*puVar32);
                        if (iVar9 != 0) {
                          puVar26 = (undefined4 *)puVar32[1];
                          if (puVar26 == (undefined4 *)0x0) {
                            if (piVar33 != (int *)0x0) {
                              bVar7 = *(byte *)(piVar33 + 3);
                              goto LAB_0001faf8;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*puVar26);
                            if (((iVar9 != 0) &&
                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&
                               (piVar33 != (int *)0x0)) {
                              bVar7 = *(byte *)(piVar33 + 3);
                              bVar10 = bVar7;
                              piVar34 = piVar33;
                              while (bVar10 != *(byte *)(puVar26 + 3)) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar26 + 3) < bVar10) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar34 + 3);
                              }
LAB_0001faf8:
                              piVar34 = piVar33;
                              bVar10 = bVar7;
                              while (*(byte *)(puVar32 + 3) != bVar10) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar32 + 3) < bVar10) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar34 + 3);
                              }
                              goto LAB_0001f4cc;
                            }
                          }
                        }
                      }
                      goto LAB_0001e864;
                    }
                    iVar9 = FUN_0001ae90(piVar33,*puVar32);
                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||
                       (piVar33 == (int *)0x0)) goto LAB_0001e864;
                    bVar7 = *(byte *)(piVar33 + 3);
                    bVar10 = bVar7;
                    piVar34 = piVar33;
                    while (bVar10 != *(byte *)(puVar32 + 3)) {
                      piVar35 = (int *)*piVar34;
                      piVar34 = (int *)piVar34[1];
                      if (*(byte *)(puVar32 + 3) < bVar10) {
                        piVar34 = piVar35;
                      }
                      if (piVar34 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      bVar10 = *(byte *)(piVar34 + 3);
                    }
                    puVar32 = (undefined4 *)puVar28[1];
                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ee1c;
                    bVar10 = *(byte *)(puVar28 + 3);
                    piVar34 = piVar33;
                    bVar11 = bVar7;
joined_r0x0001f4d0:
                    while (bVar10 != bVar7) {
                      piVar35 = (int *)piVar34[1];
                      if (bVar10 < bVar7) {
                        piVar35 = (int *)*piVar34;
                      }
                      if (piVar35 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      piVar34 = piVar35;
                      bVar7 = *(byte *)(piVar35 + 3);
                    }
                    puVar28 = (undefined4 *)puVar20[1];
                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001ec1c;
                    bVar7 = *(byte *)(puVar20 + 3);
                    piVar34 = piVar33;
                    bVar10 = bVar11;
joined_r0x0001f32c:
                    while (bVar7 != bVar11) {
                      piVar35 = (int *)piVar34[1];
                      if (bVar7 < bVar11) {
                        piVar35 = (int *)*piVar34;
                      }
                      if (piVar35 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      piVar34 = piVar35;
                      bVar11 = *(byte *)(piVar35 + 3);
                    }
                    goto LAB_0001ef7c;
                  }
                  puVar28 = (undefined4 *)puVar20[1];
                  if (puVar28 == (undefined4 *)0x0) {
                    if (piVar33 == (int *)0x0) goto LAB_0001e864;
                    bVar11 = *(byte *)(piVar33 + 3);
LAB_0001f328:
                    bVar7 = *(byte *)(puVar20 + 3);
                    piVar34 = piVar33;
                    bVar10 = bVar11;
                    goto joined_r0x0001f32c;
                  }
LAB_0001ec1c:
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    iVar9 = FUN_0001ae90(piVar33,*puVar32);
                    if (iVar9 != 0) {
                      puVar26 = (undefined4 *)puVar32[1];
                      if (puVar26 == (undefined4 *)0x0) {
                        if (piVar33 != (int *)0x0) {
                          bVar7 = *(byte *)(piVar33 + 3);
                          goto LAB_0001fa14;
                        }
                      }
                      else {
                        iVar9 = FUN_0001ae90(piVar33,*puVar26);
                        if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0))
                           && (piVar33 != (int *)0x0)) {
                          bVar7 = *(byte *)(piVar33 + 3);
                          bVar10 = bVar7;
                          piVar34 = piVar33;
                          while (bVar10 != *(byte *)(puVar26 + 3)) {
                            piVar35 = (int *)*piVar34;
                            piVar34 = (int *)piVar34[1];
                            if (*(byte *)(puVar26 + 3) < bVar10) {
                              piVar34 = piVar35;
                            }
                            if (piVar34 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            bVar10 = *(byte *)(piVar34 + 3);
                          }
LAB_0001fa14:
                          piVar34 = piVar33;
                          bVar10 = bVar7;
                          while (bVar10 != *(byte *)(puVar32 + 3)) {
                            piVar35 = (int *)*piVar34;
                            piVar34 = (int *)piVar34[1];
                            if (*(byte *)(puVar32 + 3) < bVar10) {
                              piVar34 = piVar35;
                            }
                            if (piVar34 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            bVar10 = *(byte *)(piVar34 + 3);
                          }
                          piVar34 = (int *)puVar28[1];
                          if (piVar34 != (int *)0x0) goto LAB_0001f0e8;
                          bVar10 = *(byte *)(puVar28 + 3);
                          piVar34 = piVar33;
                          bVar11 = bVar7;
                          goto joined_r0x0001fc8c;
                        }
                      }
                    }
                    goto LAB_0001e864;
                  }
                  piVar34 = (int *)puVar28[1];
                  if (piVar34 == (int *)0x0) {
                    if (piVar33 == (int *)0x0) goto LAB_0001e864;
                    bVar7 = *(byte *)(piVar33 + 3);
LAB_0001fc88:
                    bVar10 = *(byte *)(puVar28 + 3);
                    piVar34 = piVar33;
                    bVar11 = bVar7;
joined_r0x0001fc8c:
                    while (bVar10 != bVar7) {
                      piVar35 = (int *)piVar34[1];
                      if (bVar10 < bVar7) {
                        piVar35 = (int *)*piVar34;
                      }
                      if (piVar35 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      piVar34 = piVar35;
                      bVar7 = *(byte *)(piVar35 + 3);
                    }
                    goto LAB_0001f328;
                  }
LAB_0001f0e8:
                  puVar32 = (undefined4 *)*piVar34;
                  if (puVar32 == (undefined4 *)0x0) {
                    local_534 = (undefined4 *)piVar34[1];
                    if (local_534 == (undefined4 *)0x0) {
                      if (piVar33 != (int *)0x0) {
                        bVar7 = *(byte *)(piVar33 + 3);
LAB_0001f964:
                        piVar35 = piVar33;
                        bVar10 = bVar7;
                        while (*(byte *)(piVar34 + 3) != bVar10) {
                          piVar36 = (int *)*piVar35;
                          piVar35 = (int *)piVar35[1];
                          if (*(byte *)(piVar34 + 3) < bVar10) {
                            piVar35 = piVar36;
                          }
                          if (piVar35 == (int *)0x0) {
                            iVar9 = piVar23[5];
                            goto LAB_0001e868;
                          }
                          bVar10 = *(byte *)(piVar35 + 3);
                        }
                        goto LAB_0001fc88;
                      }
                    }
                    else {
                      iVar9 = FUN_0001ae90(piVar33,*local_534);
                      if (iVar9 != 0) {
LAB_0001f5cc:
                        iVar9 = FUN_0001ae90(piVar33,local_534[1]);
                        if ((iVar9 != 0) && (piVar33 != (int *)0x0)) {
                          bVar7 = *(byte *)(piVar33 + 3);
                          bVar10 = bVar7;
                          piVar35 = piVar33;
                          while (*(byte *)(local_534 + 3) != bVar10) {
                            piVar36 = (int *)*piVar35;
                            piVar35 = (int *)piVar35[1];
                            if (*(byte *)(local_534 + 3) < bVar10) {
                              piVar35 = piVar36;
                            }
                            if (piVar35 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            bVar10 = *(byte *)(piVar35 + 3);
                          }
                          goto LAB_0001f964;
                        }
                      }
                    }
                    goto LAB_0001e864;
                  }
                  iVar9 = FUN_0001ae90(piVar33,*puVar32);
                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||
                     (piVar33 == (int *)0x0)) goto LAB_0001e864;
                  bVar7 = *(byte *)(piVar33 + 3);
                  bVar10 = bVar7;
                  piVar35 = piVar33;
                  while (bVar10 != *(byte *)(puVar32 + 3)) {
                    piVar36 = (int *)*piVar35;
                    piVar35 = (int *)piVar35[1];
                    if (*(byte *)(puVar32 + 3) < bVar10) {
                      piVar35 = piVar36;
                    }
                    if (piVar35 == (int *)0x0) {
                      iVar9 = piVar23[5];
                      goto LAB_0001e868;
                    }
                    bVar10 = *(byte *)(piVar35 + 3);
                  }
                  local_534 = (undefined4 *)piVar34[1];
                  if (local_534 == (undefined4 *)0x0) goto LAB_0001f964;
                  iVar9 = FUN_0001ae90(piVar33,*local_534);
                  if (iVar9 != 0) goto LAB_0001f5cc;
                  iVar9 = piVar23[5];
LAB_0001e868:
                  iVar9 = iVar9 - *(int *)(iVar4 + 0x14);
                  if (iVar9 < *(int *)(iVar4 + 0x18)) {
                    *(int *)(iVar4 + 0x18) = iVar9;
                  }
                  goto LAB_0001e884;
                }
                puVar28 = (undefined4 *)*puVar20;
                if (puVar28 != (undefined4 *)0x0) {
                  iVar9 = FUN_0001ae90(piVar33,*puVar28);
                  if (iVar9 != 0) {
                    puVar32 = (undefined4 *)puVar28[1];
                    if (puVar32 == (undefined4 *)0x0) {
                      if (piVar33 != (int *)0x0) {
                        bVar7 = *(byte *)(piVar33 + 3);
                        goto LAB_0001ed20;
                      }
                    }
                    else {
                      iVar9 = FUN_0001ae90(piVar33,*puVar32);
                      if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0))
                         && (piVar33 != (int *)0x0)) {
                        bVar7 = *(byte *)(piVar33 + 3);
                        bVar10 = bVar7;
                        piVar34 = piVar33;
                        while (bVar10 != *(byte *)(puVar32 + 3)) {
                          iVar9 = *piVar34;
                          piVar34 = (int *)piVar34[1];
                          if (*(byte *)(puVar32 + 3) < bVar10) {
                            piVar34 = (int *)iVar9;
                          }
                          if (piVar34 == (int *)0x0) goto LAB_0001e864;
                          bVar10 = *(byte *)(piVar34 + 3);
                        }
LAB_0001ed20:
                        piVar34 = piVar33;
                        bVar10 = bVar7;
                        while (*(byte *)(puVar28 + 3) != bVar10) {
                          piVar35 = (int *)*piVar34;
                          piVar34 = (int *)piVar34[1];
                          if (*(byte *)(puVar28 + 3) < bVar10) {
                            piVar34 = piVar35;
                          }
                          if (piVar34 == (int *)0x0) {
                            iVar9 = piVar23[5];
                            goto LAB_0001e868;
                          }
                          bVar10 = *(byte *)(piVar34 + 3);
                        }
                        puVar28 = (undefined4 *)puVar20[1];
                        if (puVar28 != (undefined4 *)0x0) goto LAB_0001ea10;
                        bVar11 = *(byte *)(puVar20 + 3);
                        piVar34 = piVar33;
                        bVar10 = bVar7;
                        goto joined_r0x0001f08c;
                      }
                    }
                  }
                  goto LAB_0001e864;
                }
                puVar28 = (undefined4 *)puVar20[1];
                if (puVar28 == (undefined4 *)0x0) {
                  if (piVar33 == (int *)0x0) goto LAB_0001e864;
                  bVar7 = *(byte *)(piVar33 + 3);
                }
                else {
LAB_0001ea10:
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 == (undefined4 *)0x0) {
                    puVar32 = (undefined4 *)puVar28[1];
                    if (puVar32 == (undefined4 *)0x0) {
                      if (piVar33 != (int *)0x0) {
                        bVar10 = *(byte *)(piVar33 + 3);
LAB_0001f52c:
                        bVar11 = *(byte *)(puVar28 + 3);
                        piVar34 = piVar33;
                        bVar7 = bVar10;
                        goto joined_r0x0001f530;
                      }
                    }
                    else {
LAB_0001eecc:
                      iVar9 = FUN_0001ae90(piVar33,*puVar32);
                      if (iVar9 != 0) {
                        puVar26 = (undefined4 *)puVar32[1];
                        if (puVar26 == (undefined4 *)0x0) {
                          if (piVar33 != (int *)0x0) {
                            bVar10 = *(byte *)(piVar33 + 3);
                            goto LAB_0001fa60;
                          }
                        }
                        else {
                          iVar9 = FUN_0001ae90(piVar33,*puVar26);
                          if (((iVar9 != 0) &&
                              (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&
                             (piVar33 != (int *)0x0)) {
                            bVar10 = *(byte *)(piVar33 + 3);
                            bVar7 = bVar10;
                            piVar34 = piVar33;
                            while (*(byte *)(puVar26 + 3) != bVar7) {
                              piVar35 = (int *)*piVar34;
                              piVar34 = (int *)piVar34[1];
                              if (*(byte *)(puVar26 + 3) < bVar7) {
                                piVar34 = piVar35;
                              }
                              if (piVar34 == (int *)0x0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
                              bVar7 = *(byte *)(piVar34 + 3);
                            }
LAB_0001fa60:
                            piVar34 = piVar33;
                            bVar7 = bVar10;
                            while (*(byte *)(puVar32 + 3) != bVar7) {
                              piVar35 = (int *)*piVar34;
                              piVar34 = (int *)piVar34[1];
                              if (*(byte *)(puVar32 + 3) < bVar7) {
                                piVar34 = piVar35;
                              }
                              if (piVar34 == (int *)0x0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
                              bVar7 = *(byte *)(piVar34 + 3);
                            }
                            goto LAB_0001f52c;
                          }
                        }
                      }
                    }
                    goto LAB_0001e864;
                  }
                  iVar9 = FUN_0001ae90(piVar33,*puVar32);
                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||
                     (piVar33 == (int *)0x0)) goto LAB_0001e864;
                  bVar10 = *(byte *)(piVar33 + 3);
                  bVar7 = bVar10;
                  piVar34 = piVar33;
                  while (*(byte *)(puVar32 + 3) != bVar7) {
                    piVar35 = (int *)*piVar34;
                    piVar34 = (int *)piVar34[1];
                    if (*(byte *)(puVar32 + 3) < bVar7) {
                      piVar34 = piVar35;
                    }
                    if (piVar34 == (int *)0x0) {
                      iVar9 = piVar23[5];
                      goto LAB_0001e868;
                    }
                    bVar7 = *(byte *)(piVar34 + 3);
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) goto LAB_0001eecc;
                  bVar11 = *(byte *)(puVar28 + 3);
                  piVar34 = piVar33;
                  bVar7 = bVar10;
joined_r0x0001f530:
                  while (bVar10 != bVar11) {
                    piVar35 = (int *)piVar34[1];
                    if (bVar11 < bVar10) {
                      piVar35 = (int *)*piVar34;
                    }
                    if (piVar35 == (int *)0x0) {
                      iVar9 = piVar23[5];
                      goto LAB_0001e868;
                    }
                    piVar34 = piVar35;
                    bVar10 = *(byte *)(piVar35 + 3);
                  }
                }
                bVar11 = *(byte *)(puVar20 + 3);
                piVar34 = piVar33;
                bVar10 = bVar7;
joined_r0x0001f08c:
                while (bVar7 != bVar11) {
                  piVar35 = (int *)piVar34[1];
                  if (bVar11 < bVar7) {
                    piVar35 = (int *)*piVar34;
                  }
                  if (piVar35 == (int *)0x0) {
                    iVar9 = piVar23[5];
                    goto LAB_0001e868;
                  }
                  piVar34 = piVar35;
                  bVar7 = *(byte *)(piVar35 + 3);
                }
                puVar20 = (undefined4 *)puVar16[1];
                if (puVar20 != (undefined4 *)0x0) goto LAB_0001e974;
                bVar11 = *(byte *)(puVar16 + 3);
                piVar34 = piVar33;
                bVar7 = bVar10;
joined_r0x0001ef80:
                while (bVar10 != bVar11) {
                  piVar35 = (int *)piVar34[1];
                  if (bVar11 < bVar10) {
                    piVar35 = (int *)*piVar34;
                  }
                  if (piVar35 == (int *)0x0) {
                    iVar9 = piVar23[5];
                    goto LAB_0001e868;
                  }
                  piVar34 = piVar35;
                  bVar10 = *(byte *)(piVar35 + 3);
                }
                puVar16 = (undefined4 *)puVar27[1];
                if (puVar16 != (undefined4 *)0x0) goto LAB_0001e8cc;
                bVar10 = *(byte *)(puVar27 + 3);
              }
              while (bVar10 != bVar7) {
                piVar34 = (int *)*piVar33;
                piVar33 = (int *)piVar33[1];
                if (bVar10 < bVar7) {
                  piVar33 = piVar34;
                }
                if (piVar33 == (int *)0x0) {
                  iVar9 = piVar23[5];
                  goto LAB_0001e868;
                }
                bVar7 = *(byte *)(piVar33 + 3);
              }
            }
LAB_0001e884:
            if ((iVar8 != 0) &&
               (iVar9 = piVar23[5] - *(int *)(iVar4 + 0x14), iVar9 < *(int *)(iVar4 + 0x1c))) {
              *(int *)(iVar4 + 0x1c) = iVar9;
            }
            iVar4 = *(int *)(iVar4 + 0x10);
          } while (iVar4 != 0);
          piVar23 = (int *)piVar23[3];
        }
        else {
LAB_0001dfb4:
          piVar23 = (int *)piVar23[3];
        }
      } while (piVar23 != (int *)0x0);
      if (iVar31 == 1) {
        piVar23 = (int *)param_1[0xc];
        goto LAB_000206c8;
      }
    }
  }
LAB_0001dfc8:
  if (pbVar29 == (byte *)0x0) {
    puVar16 = param_1 + 0x4f;
    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);
    puVar27 = *(undefined4 **)(param_1[0xc] + 4);
    if (puVar27 != (undefined4 *)0x0) goto LAB_0001dff8;
LAB_0001f81c:
    piVar23 = param_1 + 0x4f;
    uVar5 = 0;
    uVar14 = 0xfffffffe;
    uVar21 = 0xffffffff;
    do {
      uVar17 = uVar14;
      uVar24 = uVar21;
      if ((*piVar23 != 0) && (uVar17 = uVar5, uVar24 = uVar5, -2 < (int)uVar14)) {
        if (uVar14 == uVar5) {
          uVar17 = uVar14;
          uVar24 = uVar21;
          if (uVar14 != uVar21) {
            uVar24 = 0xffffffff;
          }
        }
        else {
          uVar17 = uVar14;
          if (uVar14 != uVar21) {
            uVar17 = 0xffffffff;
            uVar24 = uVar21;
          }
        }
      }
      uVar5 = uVar5 + 1;
      piVar23 = piVar23 + 1;
      uVar14 = uVar17;
      uVar21 = uVar24;
    } while (uVar5 != 0x100);
  }
  else {
    puVar16 = auStack_52c;
    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);
    puVar27 = *(undefined4 **)(param_1[0xc] + 4);
    if (puVar27 != (undefined4 *)0x0) {
LAB_0001dff8:
      puVar20 = (undefined4 *)*puVar27;
      if (puVar20 != (undefined4 *)0x0) {
        puVar28 = (undefined4 *)*puVar20;
        if (puVar28 != (undefined4 *)0x0) {
          puVar32 = (undefined4 *)*puVar28;
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar32 = (undefined4 *)puVar28[1];
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];
        }
        puVar28 = (undefined4 *)puVar20[1];
        if (puVar28 != (undefined4 *)0x0) {
          puVar32 = (undefined4 *)*puVar28;
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar32 = (undefined4 *)puVar28[1];
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];
        }
        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];
      }
      puVar20 = (undefined4 *)puVar27[1];
      if (puVar20 != (undefined4 *)0x0) {
        puVar28 = (undefined4 *)*puVar20;
        if (puVar28 != (undefined4 *)0x0) {
          puVar32 = (undefined4 *)*puVar28;
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar32 = (undefined4 *)puVar28[1];
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];
        }
        puVar28 = (undefined4 *)puVar20[1];
        if (puVar28 != (undefined4 *)0x0) {
          puVar32 = (undefined4 *)*puVar28;
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar32 = (undefined4 *)puVar28[1];
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];
        }
        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];
      }
      puVar16[*(byte *)(puVar27 + 3)] = puVar27[2];
      if (pbVar29 == (byte *)0x0) goto LAB_0001f81c;
    }
    piVar23 = param_1 + 0x4f;
    uVar5 = 0;
    uVar14 = 0xfffffffe;
    uVar21 = 0xffffffff;
    do {
      uVar12 = (uint)pbVar29[uVar5];
      iVar8 = puVar16[uVar12];
      *piVar23 = iVar8;
      uVar17 = uVar14;
      uVar24 = uVar21;
      if ((iVar8 != 0) && (uVar17 = uVar12, uVar24 = uVar5, -2 < (int)uVar14)) {
        if (uVar12 == uVar14) {
          uVar17 = uVar14;
          if (uVar14 != uVar21) {
            uVar24 = 0xffffffff;
          }
        }
        else if ((uVar12 != uVar5) || (uVar17 = uVar14, uVar14 != uVar21)) {
          uVar17 = 0xffffffff;
          uVar24 = uVar21;
        }
      }
      uVar5 = uVar5 + 1;
      piVar23 = piVar23 + 1;
      uVar14 = uVar17;
      uVar21 = uVar24;
    } while (uVar5 != 0x100);
  }
  param_1[0x152] = uVar17;
  param_1[0x153] = uVar24;
  if (iVar31 != 1) goto LAB_0001e6f8;
  uVar21 = param_1[4];
  uVar14 = param_1[0xd];
  if (uVar21 - param_1[3] < uVar14) {
    _obstack_newchunk(param_1);
    iVar8 = param_1[2];
    iVar31 = param_1[3] + uVar14;
    uVar21 = param_1[4];
    uVar14 = param_1[0xd];
    param_1[3] = iVar31;
    if (iVar31 == iVar8) goto LAB_000209a8;
  }
  else {
    iVar8 = param_1[2];
    iVar31 = param_1[3] + uVar14;
    param_1[3] = iVar31;
    if (iVar31 == iVar8) {
LAB_000209a8:
      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;
    }
  }
  uVar5 = iVar31 + param_1[6] & ~param_1[6];
  param_1[3] = uVar5;
  if (uVar21 - param_1[1] < uVar5 - param_1[1]) {
    param_1[3] = uVar21;
    uVar5 = uVar21;
  }
  piVar23 = (int *)param_1[0xc];
  param_1[2] = uVar5;
  param_1[0x14f] = iVar8;
  if (-1 < (int)(uVar14 - 1)) {
    *(undefined1 *)(iVar8 + (uVar14 - 1)) = *(undefined1 *)(piVar23[1] + 0xc);
    piVar23 = (int *)piVar23[3];
    for (iVar31 = uVar14 - 2; iVar31 != -1; iVar31 = iVar31 + -1) {
      *(undefined1 *)(param_1[0x14f] + iVar31) = *(undefined1 *)(piVar23[1] + 0xc);
      piVar23 = (int *)piVar23[3];
    }
    uVar14 = param_1[0xd];
  }
  bVar1 = (int)uVar14 < 2;
  if (!bVar1) {
    uVar21 = param_1[4];
    iVar31 = param_1[3];
    uVar5 = (uVar14 - 1) * 4;
    if (uVar21 - iVar31 < uVar5) {
      _obstack_newchunk(param_1,uVar5);
      uVar14 = param_1[0xd];
      iVar31 = param_1[3];
      uVar21 = param_1[4];
      bVar1 = (int)uVar14 < 2;
    }
    piVar33 = (int *)param_1[2];
    piVar23 = (int *)(iVar31 + uVar5);
    param_1[3] = piVar23;
    if (piVar23 == piVar33) {
      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;
    }
    uVar5 = (int)piVar23 + param_1[6] & ~param_1[6];
    param_1[3] = uVar5;
    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {
      param_1[3] = uVar21;
      uVar5 = uVar21;
    }
    param_1[2] = uVar5;
    param_1[0x150] = piVar33;
    piVar23 = *(int **)(param_1[0xc] + 0xc);
    if (!bVar1) {
      iVar31 = 0;
      do {
        piVar34 = piVar23 + 6;
        piVar23 = (int *)piVar23[3];
        iVar31 = iVar31 + 1;
        *piVar33 = *piVar34;
        uVar14 = param_1[0xd];
        piVar33 = piVar33 + 1;
      } while (iVar31 < (int)(uVar14 - 1));
    }
    bVar7 = *(byte *)(param_1[0x14f] + uVar14 + -2);
    if (pbVar29 != (byte *)0x0) {
      bVar7 = pbVar29[bVar7];
    }
    *(byte *)(param_1 + 0x154) = bVar7;
  }
LAB_0001e6f8:
  if (pbVar29 != (byte *)0x0) {
    pbVar13 = pbVar29 + 0x100;
    piVar33 = param_1 + 0xf;
    do {
      bVar7 = *pbVar29;
      piVar23 = (int *)((int)piVar33 + 1);
      pbVar29 = pbVar29 + 1;
      *(undefined1 *)piVar33 = *(undefined1 *)((int)puVar30 + (uint)bVar7);
      piVar33 = piVar23;
    } while (pbVar13 != pbVar29);
  }
  if (local_2c == *(int *)puVar2) {
    return;
  }
  (*(code *)PTR___stack_chk_fail_00056494)();
                    /* WARNING: Could not recover jumptable at 0x000209d4. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)piVar23[0x155])();
  return;
}


lui gp,0x4
addiu gp,gp,0xf08
addu gp,gp,t9
addiu sp,sp,-0x550
sw s2,0x530(sp)
sw s0,0x528(sp)
lw s2,-0x7c2c(gp)
lw s0,0x544(a0)
sw gp,0x10(sp)
sw s3,0x534(sp)
or s3,a0,zero
sw ra,0x54c(sp)
sw s8,0x548(sp)
sw s7,0x544(sp)
sw s6,0x540(sp)
sw s5,0x53c(sp)
sw s4,0x538(sp)
sw s1,0x52c(sp)
lw v0,0x0(s2)
sw v0,0x524(sp)
beq s0,zero,0x0001d234
_addiu s1,a0,0x3c
addiu s1,sp,0x424
lw s4,0x2c(s3)
li v0,0x1
xori s5,s4,0x1
beq s4,v0,0x0001ff14
_sltiu s5,s5,0x1
lw v0,0x34(s3)
li v1,0xff
lw t9,-0x7cec(gp)
li a2,0x100
or a0,s1,zero
slti a1,v0,0x100
movn v1,v0,a1
jalr t9
_or a1,v1,zero
lw t0,0x30(s3)
lw gp,0x10(sp)
beq t0,zero,0x0001dfc8
_sw t0,0x20(sp)
lw t7,-0x7ea8(gp)
addiu t6,sp,0x20
lw t2,-0x7ea8(gp)
lw t5,-0x7ea8(gp)
lw t1,-0x7ea8(gp)
addiu t7,t7,-0x5330
addiu t2,t2,-0x5214
addiu t5,t5,-0x5014
addiu t1,t1,-0x5170
lw t3,0x4(t0)
beq t3,zero,0x0001df90
_nop
lw a2,0x0(t3)
beq a2,zero,0x0001d558
_nop
lw a3,0x0(a2)
beq a3,zero,0x0001d404
_nop
lw t4,0x0(a3)
beq t4,zero,0x0001d360
_nop
lw t8,0x0(t4)
beq t8,zero,0x0001d314
_nop
lw a0,0x0(t8)
beq a0,zero,0x0001d2f0
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d304
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v1,0x20(sp)
lw v0,0x8(t8)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t8,0x4(t4)
beq t8,zero,0x0001d354
_lw v1,0x20(sp)
lw a0,0x0(t8)
beq a0,zero,0x0001d334
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d348
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v0,0x20(sp)
lw v1,0x8(t8)
sw v1,0xc(v0)
lw v0,0x8(t4)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t4,0x4(a3)
beq t4,zero,0x0001d3f8
_lw v1,0x20(sp)
lw t8,0x0(t4)
beq t8,zero,0x0001d3b0
_nop
lw a0,0x0(t8)
beq a0,zero,0x0001d38c
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d3a0
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v1,0x20(sp)
lw v0,0x8(t8)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t8,0x4(t4)
beq t8,zero,0x0001d3f0
_lw v0,0x20(sp)
lw a0,0x0(t8)
beq a0,zero,0x0001d3d0
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d3e4
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v1,0x20(sp)
lw v0,0x8(t8)
sw v0,0xc(v1)
lw v1,0x8(t4)
sw v1,0xc(v0)
lw v0,0x8(a3)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw a3,0x4(a2)
beq a3,zero,0x0001d54c
_lw v1,0x20(sp)
lw t4,0x0(a3)
beq t4,zero,0x0001d4ac
_nop
lw t8,0x0(t4)
beq t8,zero,0x0001d460
_nop
lw a0,0x0(t8)
beq a0,zero,0x0001d43c
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d450
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v1,0x20(sp)
lw v0,0x8(t8)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t8,0x4(t4)
beq t8,zero,0x0001d4a0
_lw v1,0x20(sp)
lw a0,0x0(t8)
beq a0,zero,0x0001d480
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d494
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v0,0x20(sp)
lw v1,0x8(t8)
sw v1,0xc(v0)
lw v0,0x8(t4)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t4,0x4(a3)
beq t4,zero,0x0001d544
_lw v0,0x20(sp)
lw t8,0x0(t4)
beq t8,zero,0x0001d4fc
_nop
lw a0,0x0(t8)
beq a0,zero,0x0001d4d8
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d4ec
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v1,0x20(sp)
lw v0,0x8(t8)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t8,0x4(t4)
beq t8,zero,0x0001f56c
_lw v1,0x20(sp)
lw a0,0x0(t8)
beq a0,zero,0x0001d51c
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d530
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v0,0x20(sp)
lw v1,0x8(t8)
sw v1,0xc(v0)
lw v0,0x8(t4)
sw v0,0xc(v1)
lw v1,0x8(a3)
sw v1,0xc(v0)
lw v0,0x8(a2)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw a2,0x4(t3)
beq a2,zero,0x0001d828
_lw a0,0x20(sp)
lw a3,0x0(a2)
beq a3,zero,0x0001d6b8
_nop
lw t4,0x0(a3)
beq t4,zero,0x0001d60c
_nop
lw t8,0x0(t4)
beq t8,zero,0x0001d5c0
_nop
lw a0,0x0(t8)
beq a0,zero,0x0001d59c
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d5b0
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v1,0x20(sp)
lw v0,0x8(t8)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t8,0x4(t4)
beq t8,zero,0x0001d600
_lw v1,0x20(sp)
lw a0,0x0(t8)
beq a0,zero,0x0001d5e0
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d5f4
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v0,0x20(sp)
lw v1,0x8(t8)
sw v1,0xc(v0)
lw v0,0x8(t4)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t4,0x4(a3)
beq t4,zero,0x0001d6ac
_lw v1,0x20(sp)
lw t8,0x0(t4)
beq t8,zero,0x0001d65c
_nop
lw a0,0x0(t8)
beq a0,zero,0x0001d638
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d64c
_or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v1,0x20(sp)
lw v0,0x8(t8)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t8,0x4(t4)
beq t8,zero,0x0001d6a4
_lw v0,0x20(sp)
lw a0,0x0(t8)
beq a0,zero,0x0001d680
_nop
or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d69c
_lw v1,0x20(sp)
or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v1,0x20(sp)
lw v0,0x8(t8)
sw v0,0xc(v1)
lw v1,0x8(t4)
sw v1,0xc(v0)
lw v0,0x8(a3)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw a3,0x4(a2)
beq a3,zero,0x0001f074
_nop
lw t4,0x0(a3)
beq t4,zero,0x0001d770
_nop
lw t8,0x0(t4)
beq t8,zero,0x0001d71c
_nop
lw a0,0x0(t8)
beq a0,zero,0x0001d6f4
_nop
or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d710
_lw v1,0x20(sp)
or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v1,0x20(sp)
lw v0,0x8(t8)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t8,0x4(t4)
beq t8,zero,0x0001f588
_nop
lw a0,0x0(t8)
beq a0,zero,0x0001d740
_nop
or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d75c
_lw v0,0x20(sp)
or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v0,0x20(sp)
lw v1,0x8(t8)
sw v1,0xc(v0)
lw v0,0x8(t4)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t4,0x4(a3)
beq t4,zero,0x0001f30c
_nop
lw t8,0x0(t4)
beq t8,zero,0x0001d7c8
_nop
lw a0,0x0(t8)
beq a0,zero,0x0001d7a0
_nop
or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d7bc
_lw v1,0x20(sp)
or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v1,0x20(sp)
lw v0,0x8(t8)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t8,0x4(t4)
beq t8,zero,0x0001f578
_nop
lw a0,0x0(t8)
beq a0,zero,0x0001d7ec
_nop
or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw a0,0x4(t8)
beq a0,zero,0x0001d808
_lw v1,0x20(sp)
or t9,t5,zero
bal 0x0001afec
_or a1,t6,zero
lw v1,0x20(sp)
lw v0,0x8(t8)
sw v0,0xc(v1)
lw v1,0x8(t4)
sw v1,0xc(v0)
lw v0,0x8(a3)
sw v0,0xc(v1)
lw a0,0x8(a2)
sw a0,0xc(v0)
lw v0,0x8(t3)
lw t3,0x4(t0)
lw v1,0x14(t0)
sw v0,0x20(sp)
beq t3,zero,0x0001df90
_sw v0,0xc(a0)
lw a3,0x0(t3)
beq a3,zero,0x0001dbd8
_nop
lw t4,0x0(a3)
beq t4,zero,0x0001da04
_nop
lw t8,0x0(t4)
beq t8,zero,0x0001d920
_nop
lw s6,0x0(t8)
beq s6,zero,0x0001d8b4
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001d8b4
_nop
sb v1,0x0(v0)
lw s6,0x4(t8)
beq s6,zero,0x0001d904
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001d904
_nop
sb v1,0x0(v0)
lbu v0,0xc(t8)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001d920
_nop
sb v1,0x0(v0)
lw t8,0x4(t4)
beq t8,zero,0x0001d9e8
_nop
lw s6,0x0(t8)
beq s6,zero,0x0001d97c
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001d97c
_nop
sb v1,0x0(v0)
lw s6,0x4(t8)
beq s6,zero,0x0001d9cc
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001d9cc
_nop
sb v1,0x0(v0)
lbu v0,0xc(t8)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001d9e8
_nop
sb v1,0x0(v0)
lbu v0,0xc(t4)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001da04
_nop
sb v1,0x0(v0)
lw t4,0x4(a3)
beq t4,zero,0x0001dbbc
_nop
lw t8,0x0(t4)
beq t8,zero,0x0001dad8
_nop
lw s6,0x0(t8)
beq s6,zero,0x0001da6c
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001da6c
_nop
sb v1,0x0(v0)
lw s6,0x4(t8)
beq s6,zero,0x0001dabc
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dabc
_nop
sb v1,0x0(v0)
lbu v0,0xc(t8)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dad8
_nop
sb v1,0x0(v0)
lw t8,0x4(t4)
beq t8,zero,0x0001dba0
_nop
lw s6,0x0(t8)
beq s6,zero,0x0001db34
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001db34
_nop
sb v1,0x0(v0)
lw s6,0x4(t8)
beq s6,zero,0x0001db84
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001db84
_nop
sb v1,0x0(v0)
lbu v0,0xc(t8)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dba0
_nop
sb v1,0x0(v0)
lbu v0,0xc(t4)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dbbc
_nop
sb v1,0x0(v0)
lbu v0,0xc(a3)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dbd8
_nop
sb v1,0x0(v0)
lw a3,0x4(t3)
beq a3,zero,0x0001df70
_nop
lw t4,0x0(a3)
beq t4,zero,0x0001dd9c
_nop
lw t8,0x0(t4)
beq t8,zero,0x0001dcb8
_nop
lw s6,0x0(t8)
beq s6,zero,0x0001dc4c
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dc4c
_nop
sb v1,0x0(v0)
lw s6,0x4(t8)
beq s6,zero,0x0001dc9c
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dc9c
_nop
sb v1,0x0(v0)
lbu v0,0xc(t8)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dcb8
_nop
sb v1,0x0(v0)
lw t8,0x4(t4)
beq t8,zero,0x0001dd80
_nop
lw s6,0x0(t8)
beq s6,zero,0x0001dd14
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dd14
_nop
sb v1,0x0(v0)
lw s6,0x4(t8)
beq s6,zero,0x0001dd64
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dd64
_nop
sb v1,0x0(v0)
lbu v0,0xc(t8)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dd80
_nop
sb v1,0x0(v0)
lbu v0,0xc(t4)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001dd9c
_nop
sb v1,0x0(v0)
lw t4,0x4(a3)
beq t4,zero,0x0001df54
_nop
lw t8,0x0(t4)
beq t8,zero,0x0001de70
_nop
lw s6,0x0(t8)
beq s6,zero,0x0001de04
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001de04
_nop
sb v1,0x0(v0)
lw s6,0x4(t8)
beq s6,zero,0x0001de54
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001de54
_nop
sb v1,0x0(v0)
lbu v0,0xc(t8)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001de70
_nop
sb v1,0x0(v0)
lw t8,0x4(t4)
beq t8,zero,0x0001df38
_nop
lw s6,0x0(t8)
beq s6,zero,0x0001decc
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001decc
_nop
sb v1,0x0(v0)
lw s6,0x4(t8)
beq s6,zero,0x0001df1c
_nop
lw a0,0x0(s6)
or a1,v1,zero
or t9,t2,zero
bal 0x0001adec
_or a2,s1,zero
or a2,s1,zero
lw a0,0x4(s6)
or t9,t2,zero
bal 0x0001adec
_or a1,v1,zero
lbu v0,0xc(s6)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001df1c
_nop
sb v1,0x0(v0)
lbu v0,0xc(t8)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001df38
_nop
sb v1,0x0(v0)
lbu v0,0xc(t4)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001df54
_nop
sb v1,0x0(v0)
lbu v0,0xc(a3)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001df70
_nop
sb v1,0x0(v0)
lbu v0,0xc(t3)
addu v0,s1,v0
lbu a0,0x0(v0)
slt a0,v1,a0
beq a0,zero,0x0001df8c
_nop
sb v1,0x0(v0)
lw t3,0x4(t0)
lw a2,0x30(s3)
or a3,s5,zero
lw a1,0x10(t0)
or t9,t7,zero
bal 0x0001acd0
_or a0,t3,zero
li v0,0x1
beq s4,v0,0x0001e78c
_lw gp,0x10(sp)
lw t0,0xc(t0)
bne t0,zero,0x0001d2a0
_li v0,0x1
beq s4,v0,0x00020738
_nop
beq s0,zero,0x0001f7f4
_lw t9,-0x7cec(gp)
addiu s6,sp,0x24
li a2,0x400
or a1,zero,zero
jalr t9
_or a0,s6,zero
addiu s5,s3,0x13c
lw v0,0x30(s3)
lw a2,0x4(v0)
beq a2,zero,0x0001e68c
_lw gp,0x10(sp)
lw a3,0x0(a2)
beq a3,zero,0x0001e338
_nop
lw t0,0x0(a3)
beq t0,zero,0x0001e194
_nop
lw t1,0x0(t0)
beq t1,zero,0x0001e0c8
_nop
lw t2,0x0(t1)
beq t2,zero,0x0001e068
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t2,0x4(t1)
beq t2,zero,0x0001e0b4
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t1)
lw v1,0x8(t1)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t1,0x4(t0)
beq t1,zero,0x0001e180
_nop
lw t2,0x0(t1)
beq t2,zero,0x0001e120
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t2,0x4(t1)
beq t2,zero,0x0001e16c
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t1)
lw v1,0x8(t1)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t0)
lw v1,0x8(t0)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t0,0x4(a3)
beq t0,zero,0x0001e324
_nop
lw t1,0x0(t0)
beq t1,zero,0x0001e258
_nop
lw t2,0x0(t1)
beq t2,zero,0x0001e1f8
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t2,0x4(t1)
beq t2,zero,0x0001e244
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t1)
lw v1,0x8(t1)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t1,0x4(t0)
beq t1,zero,0x0001e310
_nop
lw t2,0x0(t1)
beq t2,zero,0x0001e2b0
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t2,0x4(t1)
beq t2,zero,0x0001e2fc
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t1)
lw v1,0x8(t1)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t0)
lw v1,0x8(t0)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(a3)
lw v1,0x8(a3)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw a3,0x4(a2)
beq a3,zero,0x0001e674
_nop
lw t0,0x0(a3)
beq t0,zero,0x0001e4d4
_nop
lw t1,0x0(t0)
beq t1,zero,0x0001e408
_nop
lw t2,0x0(t1)
beq t2,zero,0x0001e3a8
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t2,0x4(t1)
beq t2,zero,0x0001e3f4
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t1)
lw v1,0x8(t1)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t1,0x4(t0)
beq t1,zero,0x0001e4c0
_nop
lw t2,0x0(t1)
beq t2,zero,0x0001e460
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t2,0x4(t1)
beq t2,zero,0x0001e4ac
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t1)
lw v1,0x8(t1)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t0)
lw v1,0x8(t0)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t0,0x4(a3)
beq t0,zero,0x0001e660
_nop
lw t1,0x0(t0)
beq t1,zero,0x0001e598
_nop
lw t2,0x0(t1)
beq t2,zero,0x0001e538
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t2,0x4(t1)
beq t2,zero,0x0001e584
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t1)
lw v1,0x8(t1)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t1,0x4(t0)
beq t1,zero,0x0001e64c
_nop
lw t2,0x0(t1)
beq t2,zero,0x0001e5f0
_nop
lw t3,-0x7ea8(gp)
or a1,s6,zero
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lw t2,0x4(t1)
beq t2,zero,0x0001e638
_or a1,s6,zero
lw t3,-0x7ea8(gp)
addiu t3,t3,-0x50a0
or t9,t3,zero
bal 0x0001af60
_lw a0,0x0(t2)
or a1,s6,zero
or t9,t3,zero
bal 0x0001af60
_lw a0,0x4(t2)
lbu v0,0xc(t2)
lw v1,0x8(t2)
lw gp,0x10(sp)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t1)
lw v1,0x8(t1)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(t0)
lw v1,0x8(t0)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(a3)
lw v1,0x8(a3)
sll v0,v0,0x2
addu v0,s6,v0
sw v1,0x0(v0)
lbu v0,0xc(a2)
lw v1,0x8(a2)
sll v0,v0,0x2
addu v0,s6,v0
beq s0,zero,0x0001f81c
_sw v1,0x0(v0)
li t0,-0x1
li a2,-0x2
or v0,zero,zero
li a3,0x100
or a0,s5,zero
addu v1,s0,v0
lbu a1,0x0(v1)
sll v1,a1,0x2
addu v1,s6,v1
lw v1,0x0(v1)
beq v1,zero,0x0001e6dc
_sw v1,0x0(a0)
slti v1,a2,-0x1
bne v1,zero,0x0001e770
_nop
beq a1,a2,0x0001e77c
_nop
beq a1,v0,0x0001e760
_nop
li a2,-0x1
addiu v0,v0,0x1
bne v0,a3,0x0001e6a0
_addiu a0,a0,0x4
li v0,0x1
sw a2,0x548(s3)
beq s4,v0,0x0001fd94
_sw t0,0x54c(s3)
beq s0,zero,0x0001e724
_or v0,s0,zero
addiu a0,s3,0x3c
addiu a1,s0,0x100
lbu v1,0x0(v0)
addiu a0,a0,0x1
addiu v0,v0,0x1
addu v1,s1,v1
lbu v1,0x0(v1)
bne a1,v0,0x0001e708
_sb v1,-0x1(a0)
lw v1,0x524(sp)
lw v0,0x0(s2)
bne v1,v0,0x000209bc
_lw ra,0x54c(sp)
lw s8,0x548(sp)
lw s7,0x544(sp)
lw s6,0x540(sp)
lw s5,0x53c(sp)
lw s4,0x538(sp)
lw s3,0x534(sp)
lw s2,0x530(sp)
lw s1,0x52c(sp)
lw s0,0x528(sp)
jr ra
_addiu sp,sp,0x550
bne a2,t0,0x0001e6d8
_nop
b 0x0001e6dc
_or t0,v0,zero
or t0,v0,zero
b 0x0001e6dc
_or a2,a1,zero
beq a2,t0,0x0001e768
_nop
b 0x0001e6dc
_li t0,-0x1
lw v0,0x34(s3)
lw a3,0x10(t0)
sw v0,0x18(t0)
beq a3,zero,0x0001dfb4
_sw v0,0x1c(t0)
lw t4,0x4(t0)
lw s6,0x0(t0)
beq t4,zero,0x0001e884
_nop
lw t3,0x0(t4)
beq t3,zero,0x0001e8c0
_lw a2,0x4(a3)
lw t8,0x0(t3)
beq t8,zero,0x0001e968
_nop
lw s7,0x0(t8)
beq s7,zero,0x0001ea04
_or t9,t1,zero
lw a1,0x0(s7)
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw s8,0x4(s7)
beq s8,zero,0x0001ed14
_or t9,t1,zero
lw a1,0x0(s8)
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw a1,0x4(s8)
or t9,t1,zero
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a0,a1,0x0001ed20
_or v1,a0,zero
b 0x0001e84c
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001ed20
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001e840
_nop
lw v0,0x14(t0)
lw a0,0x14(a3)
lw v1,0x18(a3)
subu v0,v0,a0
slt v1,v0,v1
beq v1,zero,0x0001e884
_nop
sw v0,0x18(a3)
beq s6,zero,0x0001e8ac
_nop
lw v0,0x14(t0)
lw a0,0x14(a3)
lw v1,0x1c(a3)
subu v0,v0,a0
slt v1,v0,v1
beq v1,zero,0x0001e8ac
_nop
sw v0,0x1c(a3)
lw a3,0x10(a3)
bne a3,zero,0x0001e7a8
_nop
b 0x0001dfb8
_lw t0,0xc(t0)
lw t3,0x4(t4)
beq t3,zero,0x0001ecc8
_nop
lw t8,0x0(t3)
beq t8,zero,0x0001ea94
_nop
lw s7,0x0(t8)
beq s7,zero,0x0001eb58
_nop
lw s8,0x0(s7)
beq s8,zero,0x0001ed60
_or t9,t1,zero
lw a1,0x0(s8)
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw a1,0x4(s8)
or t9,t1,zero
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a1,a0,0x0001f7cc
_or v1,a0,zero
b 0x0001e948
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f7cc
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001e93c
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw t8,0x4(t3)
beq t8,zero,0x0001ef70
_nop
lw s7,0x0(t8)
beq s7,zero,0x0001ec10
_nop
lw s8,0x0(s7)
beq s8,zero,0x0001ee10
_or t9,t1,zero
lw a1,0x0(s8)
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw a1,0x4(s8)
or t9,t1,zero
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a0,a1,0x0001f7e0
_or v1,a0,zero
b 0x0001e9e4
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f7e0
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001e9d8
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s7,0x4(t8)
beq s7,zero,0x0001f07c
_nop
lw s8,0x0(s7)
beq s8,zero,0x0001eec0
_or t9,t1,zero
lw a1,0x0(s8)
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw a1,0x4(s8)
or t9,t1,zero
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a1,a0,0x0001f598
_or v1,a0,zero
b 0x0001ea74
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f598
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001ea68
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw t8,0x4(t3)
beq t8,zero,0x0001f2b8
_nop
lw s7,0x0(t8)
beq s7,zero,0x0001efd0
_nop
lw s8,0x0(s7)
beq s8,zero,0x0001f20c
_or t9,t1,zero
lw a1,0x0(s8)
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x4(s8)
beq v1,zero,0x0001f9bc
_or a0,a2,zero
lw a1,0x0(v1)
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a1,a0,0x0001f9c8
_or v1,a0,zero
b 0x0001eb38
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f9c8
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001eb2c
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s7,0x4(t8)
beq s7,zero,0x0001f368
_nop
lw s8,0x0(s7)
beq s8,zero,0x0001f174
_or t9,t1,zero
lw a1,0x0(s8)
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x4(s8)
beq v1,zero,0x0001faa0
_or a0,a2,zero
lw a1,0x0(v1)
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a0,a1,0x0001faac
_or v1,a0,zero
b 0x0001ebf0
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001faac
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001ebe4
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s7,0x4(t8)
beq s7,zero,0x0001f31c
_nop
lw s8,0x0(s7)
beq s8,zero,0x0001f0dc
_or t9,t1,zero
lw a1,0x0(s8)
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x4(s8)
beq v1,zero,0x0001fa08
_or a0,a2,zero
lw a1,0x0(v1)
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a0,a1,0x0001fa14
_or v1,a0,zero
b 0x0001eca8
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001fa14
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001ec9c
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu v1,0xc(t4)
bne v1,a0,0x0001ecf4
_or v0,a0,zero
b 0x0001e884
_nop
lbu v0,0xc(a2)
beq v0,v1,0x0001e884
_nop
lw a0,0x0(a2)
sltu v0,v1,v0
lw a2,0x4(a2)
movn a2,a0,v0
bne a2,zero,0x0001ece8
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s7)
beq a1,a0,0x0001f2a4
_or v1,a0,zero
b 0x0001ed40
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f2a4
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001ed34
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s8,0x4(s7)
beq s8,zero,0x0001f460
_nop
lw a1,0x0(s8)
or t9,t1,zero
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x4(s8)
beq v1,zero,0x0001fb38
_or a0,a2,zero
lw a1,0x0(v1)
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a0,a1,0x0001fb44
_or v1,a0,zero
b 0x0001edf0
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001fb44
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001ede4
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s8,0x4(s7)
beq s8,zero,0x0001f4c0
_nop
lw a1,0x0(s8)
or t9,t1,zero
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x4(s8)
beq v1,zero,0x0001faec
_or a0,a2,zero
lw a1,0x0(v1)
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a0,a1,0x0001faf8
_or v1,a0,zero
b 0x0001eea0
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001faf8
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001ee94
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s8,0x4(s7)
beq s8,zero,0x0001f520
_nop
lw a1,0x0(s8)
or t9,t1,zero
bal 0x0001ae90
_or a0,a2,zero
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x4(s8)
beq v1,zero,0x0001fa54
_or a0,a2,zero
lw a1,0x0(v1)
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a1,a0,0x0001fa60
_or v1,a0,zero
b 0x0001ef50
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001fa60
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001ef44
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(t3)
beq a0,a1,0x0001efbc
_or v1,a0,zero
b 0x0001ef9c
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001efbc
_nop
lw t3,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t3,v1
bne v0,zero,0x0001ef90
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw t3,0x4(t4)
bne t3,zero,0x0001e8cc
_nop
b 0x0001ecd8
_lbu v1,0xc(t4)
lw s7,0x4(t8)
beq s7,zero,0x0001fb84
_nop
lw s8,0x0(s7)
beq s8,zero,0x0001f3c8
_nop
lw v1,0x0(s8)
beq v1,zero,0x0001f634
_or a0,a2,zero
lw a1,0x0(v1)
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a1,a0,0x00020854
_or v1,a0,zero
b 0x0001f054
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x00020854
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f048
_nop
b 0x0001e868
_lw v0,0x14(t0)
b 0x0001d820
_lw v0,0x20(sp)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(t8)
beq a0,a1,0x0001f0c8
_or v1,a0,zero
b 0x0001f0a8
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f0c8
_nop
lw t8,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t8,v1
bne v0,zero,0x0001f09c
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw t8,0x4(t3)
bne t8,zero,0x0001e974
_nop
b 0x0001ef80
_lbu a1,0xc(t3)
lw s8,0x4(s7)
beq s8,zero,0x0001fc7c
_nop
lw v1,0x0(s8)
beq v1,zero,0x0001f5ac
_or a0,a2,zero
lw a1,0x0(v1)
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a0,a1,0x00020880
_or v1,a0,zero
b 0x0001f154
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x00020880
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f148
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s8,0x4(s7)
beq s8,zero,0x0001fc30
_nop
lw v1,0x0(s8)
beq v1,zero,0x0001f6bc
_or a0,a2,zero
lw a1,0x0(v1)
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a0,a1,0x000208ac
_or v1,a0,zero
b 0x0001f1ec
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x000208ac
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f1e0
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s8,0x4(s7)
beq s8,zero,0x0001fbd0
_nop
lw v1,0x0(s8)
beq v1,zero,0x0001f744
_or a0,a2,zero
lw a1,0x0(v1)
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a1,a0,0x000208d8
_or v1,a0,zero
b 0x0001f284
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x000208d8
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f278
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s7,0x4(t8)
bne s7,zero,0x0001ea10
_nop
b 0x0001f08c
_lbu a1,0xc(t8)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(t3)
beq a1,a0,0x0001ecd4
_or v1,a0,zero
b 0x0001f2e4
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001ecd4
_nop
lw t3,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t3,v1
bne v0,zero,0x0001f2d8
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw v1,0x20(sp)
lw v0,0x8(a3)
b 0x0001d820
_sw v0,0xc(v1)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(t8)
beq a1,a0,0x0001ef7c
_or v1,a0,zero
b 0x0001f348
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001ef7c
_nop
lw t8,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t8,v1
bne v0,zero,0x0001f33c
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(t8)
beq a0,a1,0x0001f3b4
_or v1,a0,zero
b 0x0001f394
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f3b4
_nop
lw t8,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t8,v1
bne v0,zero,0x0001f388
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw t8,0x4(t3)
bne t8,zero,0x0001eaa0
_nop
b 0x0001f2c8
_lbu a1,0xc(t3)
lw s8,0x4(s7)
beq s8,zero,0x00020758
_nop
lw v1,0x0(s8)
beq v1,zero,0x0001fcf0
_or a0,a2,zero
lw a1,0x0(v1)
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a0,a1,0x00020928
_or v1,a0,zero
b 0x0001f440
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x00020928
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f434
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s7)
beq a0,a1,0x0001f4ac
_or v1,a0,zero
b 0x0001f48c
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f4ac
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f480
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s7,0x4(t8)
bne s7,zero,0x0001eb64
_nop
b 0x0001f378
_lbu a1,0xc(t8)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s7)
beq a1,a0,0x0001f50c
_or v1,a0,zero
b 0x0001f4ec
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f50c
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f4e0
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s7,0x4(t8)
bne s7,zero,0x0001ec1c
_nop
b 0x0001f32c
_lbu a1,0xc(t8)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s7)
beq a0,a1,0x0001f088
_or v1,a0,zero
b 0x0001f54c
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f088
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f540
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw v0,0x8(t4)
b 0x0001d544
_sw v0,0xc(v1)
lw v0,0x20(sp)
lw v1,0x8(t4)
b 0x0001d818
_sw v1,0xc(v0)
b 0x0001d764
_lw v1,0x20(sp)
lw s8,0x4(s7)
bne s8,zero,0x0001eecc
_nop
b 0x0001f530
_lbu a1,0xc(s7)
lw v1,0x4(s8)
beq v1,zero,0x0001f958
_or t9,t1,zero
lw a1,0x0(v1)
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a1,a0,0x0001f964
_or v1,a0,zero
b 0x0001f614
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f964
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f608
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw v1,0x4(s8)
beq v1,zero,0x0001f90c
_or t9,t1,zero
lw a1,0x0(v1)
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a0,a1,0x0001f918
_or v1,a0,zero
b 0x0001f69c
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x0001f918
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f690
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw v1,0x4(s8)
beq v1,zero,0x0001f874
_or t9,t1,zero
lw a1,0x0(v1)
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a1,a0,0x0001f880
_or v1,a0,zero
b 0x0001f724
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f880
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f718
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw v1,0x4(s8)
beq v1,zero,0x0001f8c0
_or t9,t1,zero
lw a1,0x0(v1)
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a0,a1,0x0001f8cc
_or v1,a0,zero
b 0x0001f7ac
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x0001f8cc
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f7a0
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s8,0x4(s7)
bne s8,zero,0x0001ed6c
_nop
b 0x0001f470
_lbu a1,0xc(s7)
lw s8,0x4(s7)
bne s8,zero,0x0001ee1c
_nop
b 0x0001f4d0
_lbu a1,0xc(s7)
addiu s5,s3,0x13c
li a2,0x400
or a1,zero,zero
jalr t9
_or a0,s5,zero
or s6,s5,zero
lw v0,0x30(s3)
lw a2,0x4(v0)
bne a2,zero,0x0001dff8
_lw gp,0x10(sp)
li t0,-0x1
li a2,-0x2
or v0,zero,zero
li a1,0x100
b 0x0001f854
_or a0,s5,zero
beq a2,v0,0x0001f9a4
_nop
beq a2,t0,0x0001f9b4
_nop
li a2,-0x1
addiu v0,v0,0x1
beq v0,a1,0x0001e6e8
_addiu a0,a0,0x4
lw v1,0x0(a0)
beq v1,zero,0x0001f848
_slti v1,a2,-0x1
beq v1,zero,0x0001f834
_nop
or t0,v0,zero
b 0x0001f848
_or a2,v0,zero
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a1,a0,0x0001fc3c
_or v1,a0,zero
b 0x0001f8a0
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001fc3c
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f894
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a0,a1,0x0001fbdc
_or v1,a0,zero
b 0x0001f8ec
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x0001fbdc
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f8e0
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a0,a1,0x000207a4
_or v1,a0,zero
b 0x0001f938
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x000207a4
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f92c
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a1,a0,0x0001fc88
_or v1,a0,zero
b 0x0001f984
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001fc88
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f978
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,t0,0x0001f848
_nop
b 0x0001f848
_li t0,-0x1
b 0x0001f848
_or t0,v0,zero
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a0,a1,0x0001fcc8
_or v1,a0,zero
b 0x0001f9e8
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x0001fcc8
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001f9dc
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a0,a1,0x0001fcdc
_or v1,a0,zero
b 0x0001fa34
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001fcdc
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001fa28
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a1,a0,0x0001f52c
_or v1,a0,zero
b 0x0001fa80
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f52c
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001fa74
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a1,a0,0x0001fd80
_or v1,a0,zero
b 0x0001facc
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001fd80
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001fac0
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a1,a0,0x0001f4cc
_or v1,a0,zero
b 0x0001fb18
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f4cc
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001fb0c
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a1,a0,0x0001f46c
_or v1,a0,zero
b 0x0001fb64
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f46c
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001fb58
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(t8)
beq a1,a0,0x0001f2c4
_or v1,a0,zero
b 0x0001fbb0
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f2c4
_nop
lw t8,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t8,v1
bne v0,zero,0x0001fba4
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s7)
beq a0,a1,0x0001fc1c
_or v1,a0,zero
b 0x0001fbfc
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x0001fc1c
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001fbf0
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s7,0x4(t8)
bne s7,zero,0x0001efdc
_nop
b 0x0001fb94
_lbu a1,0xc(t8)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s7)
beq a0,a1,0x0001f374
_or v1,a0,zero
b 0x0001fc5c
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f374
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001fc50
_nop
b 0x0001e868
_lw v0,0x14(t0)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s7)
beq a1,a0,0x0001f328
_or v1,a0,zero
b 0x0001fca8
_or v0,a2,zero
lbu v1,0xc(v0)
beq v1,a1,0x0001f328
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001fc9c
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s8,0x4(s7)
bne s8,zero,0x0001f218
_nop
b 0x0001fbe0
_lbu a1,0xc(s7)
lw s8,0x4(s7)
bne s8,zero,0x0001f0e8
_nop
b 0x0001fc8c
_lbu a1,0xc(s7)
lw v1,0x4(s8)
beq v1,zero,0x00020808
_nop
lw a1,0x0(v1)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
lw v1,0x1c(sp)
or a0,a2,zero
or t9,t1,zero
bal 0x0001ae90
_lw a1,0x4(v1)
beq v0,zero,0x0001e864
_lw gp,0x10(sp)
beq a2,zero,0x0001e864
_lw v1,0x1c(sp)
lbu a0,0xc(a2)
lbu a1,0xc(v1)
beq a1,a0,0x00020814
_or v1,a0,zero
b 0x0001fd60
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x00020814
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x0001fd54
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s8,0x4(s7)
bne s8,zero,0x0001f180
_nop
b 0x0001fc40
_lbu a1,0xc(s7)
lw a3,0x10(s3)
lw v0,0xc(s3)
lw a1,0x34(s3)
subu v1,a3,v0
sltu v1,v1,a1
bne v1,zero,0x0002097c
_or s4,a1,zero
lw v1,0x8(s3)
addu v0,v0,s4
beq v0,v1,0x000209a8
_sw v0,0xc(s3)
lw a2,0x18(s3)
lw a0,0x4(s3)
addu v0,v0,a2
nor a2,zero,a2
and v0,v0,a2
subu a2,v0,a0
subu a0,a3,a0
sltu a0,a0,a2
bne a0,zero,0x000207c4
_sw v0,0xc(s3)
addiu a2,a1,-0x1
lw a0,0x30(s3)
sw v0,0x8(s3)
bltz a2,0x0001fe44
_sw v1,0x53c(s3)
lw a3,0x4(a0)
addu v1,v1,a2
addiu v0,a1,-0x2
li a1,-0x1
li a2,-0x1
lbu a3,0xc(a3)
sb a3,0x0(v1)
beq v0,a1,0x0001fe40
_lw a0,0xc(a0)
lw a1,0x4(a0)
lw v1,0x53c(s3)
lbu a1,0xc(a1)
addu v1,v1,v0
addiu v0,v0,-0x1
sb a1,0x0(v1)
bne v0,a2,0x0001fe20
_lw a0,0xc(a0)
lw a1,0x34(s3)
slti a3,a1,0x2
bne a3,zero,0x0001e6f8
_nop
lw t0,0x10(s3)
addiu s4,a1,-0x1
lw v0,0xc(s3)
sll s4,s4,0x2
subu v1,t0,v0
sltu v1,v1,s4
bne v1,zero,0x000207d0
_lw t9,-0x7e9c(gp)
lw v1,0x8(s3)
addu v0,v0,s4
beq v0,v1,0x000207f4
_sw v0,0xc(s3)
lw a2,0x18(s3)
lw a0,0x4(s3)
addu v0,v0,a2
nor a2,zero,a2
and v0,v0,a2
subu a2,v0,a0
subu a0,t0,a0
sltu a0,a0,a2
beq a0,zero,0x0001feb0
_sw v0,0xc(s3)
sw t0,0xc(s3)
or v0,t0,zero
lw a0,0x30(s3)
sw v0,0x8(s3)
sw v1,0x540(s3)
bne a3,zero,0x0001fef0
_lw a0,0xc(a0)
or a2,zero,zero
lw v0,0x18(a0)
addiu v1,v1,0x4
lw a0,0xc(a0)
addiu a2,a2,0x1
sw v0,-0x4(v1)
lw a1,0x34(s3)
addiu v0,a1,-0x1
slt v0,a2,v0
bne v0,zero,0x0001fec8
_nop
lw v0,0x53c(s3)
addu v0,v0,a1
beq s0,zero,0x0001ff0c
_lb v0,-0x2(v0)
andi v0,v0,0xff
addu v0,s0,v0
lb v0,0x0(v0)
b 0x0001e6f8
_sb v0,0x550(s3)
lw a2,0x30(s3)
beq a2,zero,0x00020544
_sw a2,0x20(sp)
lw t0,-0x7ea8(gp)
addiu t1,sp,0x20
addiu t0,t0,-0x5014
lw a3,0x4(a2)
beq a3,zero,0x00020538
_nop
lw t2,0x0(a3)
beq t2,zero,0x00020224
_nop
lw t3,0x0(t2)
beq t3,zero,0x000200b0
_nop
lw t4,0x0(t3)
beq t4,zero,0x0001fffc
_nop
lw t5,0x0(t4)
beq t5,zero,0x0001ffa8
_nop
lw a0,0x0(t5)
beq a0,zero,0x0001ff80
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x0001ff98
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v1,0x20(sp)
lw v0,0x8(t5)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t5,0x4(t4)
beq t5,zero,0x0001fff0
_lw v1,0x20(sp)
lw a0,0x0(t5)
beq a0,zero,0x0001ffcc
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x0001ffe4
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v0,0x20(sp)
lw v1,0x8(t5)
sw v1,0xc(v0)
lw v0,0x8(t4)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t4,0x4(t3)
beq t4,zero,0x000200a4
_lw v1,0x20(sp)
lw t5,0x0(t4)
beq t5,zero,0x00020054
_nop
lw a0,0x0(t5)
beq a0,zero,0x0002002c
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x00020044
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v1,0x20(sp)
lw v0,0x8(t5)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t5,0x4(t4)
beq t5,zero,0x0002009c
_lw v0,0x20(sp)
lw a0,0x0(t5)
beq a0,zero,0x00020078
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x00020090
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v1,0x20(sp)
lw v0,0x8(t5)
sw v0,0xc(v1)
lw v1,0x8(t4)
sw v1,0xc(v0)
lw v0,0x8(t3)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t3,0x4(t2)
beq t3,zero,0x00020218
_lw v1,0x20(sp)
lw t4,0x0(t3)
beq t4,zero,0x00020168
_nop
lw t5,0x0(t4)
beq t5,zero,0x00020114
_nop
lw a0,0x0(t5)
beq a0,zero,0x000200ec
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x00020104
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v1,0x20(sp)
lw v0,0x8(t5)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t5,0x4(t4)
beq t5,zero,0x0002015c
_lw v1,0x20(sp)
lw a0,0x0(t5)
beq a0,zero,0x00020138
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x00020150
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v0,0x20(sp)
lw v1,0x8(t5)
sw v1,0xc(v0)
lw v0,0x8(t4)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t4,0x4(t3)
beq t4,zero,0x00020210
_lw v0,0x20(sp)
lw t5,0x0(t4)
beq t5,zero,0x000201c0
_nop
lw a0,0x0(t5)
beq a0,zero,0x00020198
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x000201b0
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v1,0x20(sp)
lw v0,0x8(t5)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t5,0x4(t4)
beq t5,zero,0x0002091c
_lw v1,0x20(sp)
lw a0,0x0(t5)
beq a0,zero,0x000201e4
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x000201fc
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v0,0x20(sp)
lw v1,0x8(t5)
sw v1,0xc(v0)
lw v0,0x8(t4)
sw v0,0xc(v1)
lw v1,0x8(t3)
sw v1,0xc(v0)
lw v0,0x8(t2)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t2,0x4(a3)
beq t2,zero,0x0002052c
_lw v1,0x20(sp)
lw t3,0x0(t2)
beq t3,zero,0x0002039c
_nop
lw t4,0x0(t3)
beq t4,zero,0x000202e8
_nop
lw t5,0x0(t4)
beq t5,zero,0x00020294
_nop
lw a0,0x0(t5)
beq a0,zero,0x0002026c
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x00020284
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v1,0x20(sp)
lw v0,0x8(t5)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t5,0x4(t4)
beq t5,zero,0x000202dc
_lw v1,0x20(sp)
lw a0,0x0(t5)
beq a0,zero,0x000202b8
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x000202d0
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v0,0x20(sp)
lw v1,0x8(t5)
sw v1,0xc(v0)
lw v0,0x8(t4)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t4,0x4(t3)
beq t4,zero,0x00020390
_lw v1,0x20(sp)
lw t5,0x0(t4)
beq t5,zero,0x00020340
_nop
lw a0,0x0(t5)
beq a0,zero,0x00020318
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x00020330
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v1,0x20(sp)
lw v0,0x8(t5)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t5,0x4(t4)
beq t5,zero,0x00020388
_lw v0,0x20(sp)
lw a0,0x0(t5)
beq a0,zero,0x00020364
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x0002037c
_or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v1,0x20(sp)
lw v0,0x8(t5)
sw v0,0xc(v1)
lw v1,0x8(t4)
sw v1,0xc(v0)
lw v0,0x8(t3)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t3,0x4(t2)
beq t3,zero,0x00020730
_nop
lw t4,0x0(t3)
beq t4,zero,0x00020464
_nop
lw t5,0x0(t4)
beq t5,zero,0x00020408
_nop
lw a0,0x0(t5)
beq a0,zero,0x000203dc
_nop
or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x000203fc
_lw v1,0x20(sp)
or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v1,0x20(sp)
lw v0,0x8(t5)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t5,0x4(t4)
beq t5,zero,0x00020914
_nop
lw a0,0x0(t5)
beq a0,zero,0x00020430
_nop
or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x00020450
_lw v0,0x20(sp)
or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v0,0x20(sp)
lw v1,0x8(t5)
sw v1,0xc(v0)
lw v0,0x8(t4)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t4,0x4(t3)
beq t4,zero,0x00020740
_nop
lw t5,0x0(t4)
beq t5,zero,0x000204c4
_nop
lw a0,0x0(t5)
beq a0,zero,0x00020498
_nop
or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x000204b8
_lw v1,0x20(sp)
or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v1,0x20(sp)
lw v0,0x8(t5)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw t5,0x4(t4)
beq t5,zero,0x00020904
_nop
lw a0,0x0(t5)
beq a0,zero,0x000204ec
_nop
or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw a0,0x4(t5)
beq a0,zero,0x0002050c
_lw v1,0x20(sp)
or t9,t0,zero
bal 0x0001afec
_or a1,t1,zero
lw gp,0x10(sp)
lw v1,0x20(sp)
lw v0,0x8(t5)
sw v0,0xc(v1)
lw v1,0x8(t4)
sw v1,0xc(v0)
lw v0,0x8(t3)
sw v0,0xc(v1)
lw v1,0x8(t2)
sw v1,0xc(v0)
lw v0,0x8(a3)
sw v0,0xc(v1)
sw v0,0x20(sp)
lw a2,0xc(a2)
bne a2,zero,0x0001ff2c
_nop
lw a3,0x10(s3)
lw v0,0xc(s3)
lw a1,0x34(s3)
subu v1,a3,v0
sltu v1,v1,a1
bne v1,zero,0x0002093c
_or s6,a1,zero
lw a2,0x8(s3)
addu v0,v0,s6
beq v0,a2,0x00020968
_sw v0,0xc(s3)
lw a0,0x18(s3)
lw v1,0x4(s3)
addu v0,v0,a0
nor a0,zero,a0
and v0,v0,a0
subu a0,v0,v1
subu v1,a3,v1
sltu v1,v1,a0
bne v1,zero,0x000207b8
_sw v0,0xc(s3)
lw v1,0x30(s3)
sw v0,0x8(s3)
blez a1,0x000205f0
_sw a2,0x53c(s3)
lw v0,0x4(v1)
lbu v0,0xc(v0)
sb v0,0x0(a2)
lw v0,0x34(s3)
slti v0,v0,0x2
bne v0,zero,0x000205f0
_lw a0,0xc(v1)
or v0,s4,zero
lw a1,0x4(a0)
lw v1,0x53c(s3)
lbu a1,0xc(a1)
addu v1,v1,v0
addiu v0,v0,0x1
sb a1,0x0(v1)
lw v1,0x34(s3)
slt v1,v0,v1
bne v1,zero,0x000205c8
_lw a0,0xc(a0)
lw t9,-0x7e98(gp)
bal 0x0001c6a8
_lw a0,0x544(s3)
lw gp,0x10(sp)
or s6,v0,zero
or a0,v0,zero
lw a2,0x34(s3)
lw a1,0x53c(s3)
lw v0,-0x7ea8(gp)
lw t9,-0x7ee0(gp)
addiu v0,v0,-0x47f8
bal 0x0001c800
_sw v0,0x554(s6)
or a1,zero,zero
lw gp,0x10(sp)
lw t9,-0x7e94(gp)
bal 0x0003dc68
_or a0,s3,zero
addiu v0,s6,0x550
lw gp,0x10(sp)
or v1,s6,zero
or a1,s3,zero
lw t0,0x0(v1)
addiu v1,v1,0x10
addiu a1,a1,0x10
lw a3,-0xc(v1)
lw a2,-0x8(v1)
lw a0,-0x4(v1)
sw t0,-0x10(a1)
sw a3,-0xc(a1)
sw a2,-0x8(a1)
bne v1,v0,0x00020648
_sw a0,-0x4(a1)
lw a2,0x0(v1)
or a0,s6,zero
lw v0,0x4(v1)
lw t9,-0x7c20(gp)
sw a2,0x0(a1)
jalr t9
_sw v0,0x4(a1)
li v1,0xff
lw v0,0x34(s3)
li a2,0x100
lw gp,0x10(sp)
or a0,s1,zero
slti a1,v0,0x100
movn v1,v0,a1
lw t9,-0x7cec(gp)
jalr t9
_or a1,v1,zero
lw t0,0x30(s3)
lw gp,0x10(sp)
bne t0,zero,0x0001d27c
_sw t0,0x20(sp)
lw v0,0xc(t0)
beq v0,zero,0x0001dfc8
_nop
lw v1,0x8(v0)
lw a0,0x1c(v0)
lw v1,0x1c(v1)
slt a1,v1,a0
beq a1,zero,0x000206f4
_nop
sw v1,0x1c(v0)
or a0,v1,zero
lw v1,0x18(v0)
slt v1,a0,v1
beq v1,zero,0x0002071c
_nop
sw a0,0x18(v0)
lw v0,0xc(v0)
bne v0,zero,0x000206d4
_nop
b 0x0001dfc8
_nop
lw v0,0xc(v0)
bne v0,zero,0x000206d4
_nop
b 0x0001dfc8
_nop
b 0x00020524
_lw v0,0x20(sp)
b 0x000206c8
_lw t0,0x30(s3)
lw v1,0x20(sp)
lw v0,0x8(t3)
b 0x00020524
_sw v0,0xc(v1)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s7)
beq a1,a0,0x0001fb90
_or v1,a0,zero
b 0x00020784
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x0001fb90
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x00020778
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw s8,0x4(s7)
bne s8,zero,0x0001f3d4
_nop
b 0x00020768
_lbu a1,0xc(s7)
sw a3,0xc(s3)
b 0x00020598
_or v0,a3,zero
sw a3,0xc(s3)
b 0x0001fde8
_or v0,a3,zero
or a1,s4,zero
bal 0x0003da78
_or a0,s3,zero
lw a1,0x34(s3)
lw gp,0x10(sp)
lw v0,0xc(s3)
lw t0,0x10(s3)
b 0x0001fe70
_slti a3,a1,0x2
lbu a0,0x28(s3)
li a2,0x1
ins a0,a2,0x6,0x1
b 0x0001fe80
_sb a0,0x28(s3)
beq a2,zero,0x0001e864
_nop
lbu a0,0xc(a2)
lbu a1,0xc(s8)
beq a0,a1,0x00020764
_or v1,a0,zero
b 0x00020834
_or v0,a2,zero
lbu v1,0xc(v0)
beq a1,v1,0x00020764
_nop
lw t9,0x0(v0)
sltu v1,a1,v1
lw v0,0x4(v0)
movn v0,t9,v1
bne v0,zero,0x00020828
_nop
b 0x0001e868
_lw v0,0x14(t0)
lw v1,0x4(s8)
beq v1,zero,0x0001f918
_or t9,t1,zero
lw a1,0x0(v1)
or a0,a2,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
bne v0,zero,0x0001f654
_lw gp,0x10(sp)
b 0x0001e868
_lw v0,0x14(t0)
lw v1,0x4(s8)
beq v1,zero,0x0001f964
_or t9,t1,zero
lw a1,0x0(v1)
or a0,a2,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
bne v0,zero,0x0001f5cc
_lw gp,0x10(sp)
b 0x0001e868
_lw v0,0x14(t0)
lw v1,0x4(s8)
beq v1,zero,0x0001f880
_or t9,t1,zero
lw a1,0x0(v1)
or a0,a2,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
bne v0,zero,0x0001f6dc
_lw gp,0x10(sp)
b 0x0001e868
_lw v0,0x14(t0)
lw v1,0x4(s8)
beq v1,zero,0x0001f8cc
_or t9,t1,zero
lw a1,0x0(v1)
or a0,a2,zero
bal 0x0001ae90
_sw v1,0x1c(sp)
bne v0,zero,0x0001f764
_lw gp,0x10(sp)
b 0x0001e868
_lw v0,0x14(t0)
lw v0,0x20(sp)
lw v1,0x8(t4)
b 0x0002051c
_sw v1,0xc(v0)
b 0x00020458
_lw v1,0x20(sp)
lw v0,0x8(t4)
b 0x00020210
_sw v0,0xc(v1)
lw v1,0x4(s8)
bne v1,zero,0x0001fcfc
_nop
b 0x00020818
_lbu a1,0xc(s8)
lw t9,-0x7e9c(gp)
bal 0x0003da78
_or a0,s3,zero
lw v0,0xc(s3)
lw a2,0x8(s3)
lw gp,0x10(sp)
addu v0,v0,s6
lw a3,0x10(s3)
lw a1,0x34(s3)
bne v0,a2,0x00020570
_sw v0,0xc(s3)
lbu v1,0x28(s3)
li a0,0x1
ins v1,a0,0x6,0x1
b 0x00020570
_sb v1,0x28(s3)
lw t9,-0x7e9c(gp)
bal 0x0003da78
_or a0,s3,zero
lw v0,0xc(s3)
lw v1,0x8(s3)
lw gp,0x10(sp)
addu v0,v0,s4
lw a3,0x10(s3)
lw a1,0x34(s3)
bne v0,v1,0x0001fdc0
_sw v0,0xc(s3)
lbu a0,0x28(s3)
li a2,0x1
ins a0,a2,0x6,0x1
b 0x0001fdc0
_sb a0,0x28(s3)
lw t9,-0x7c4c(gp)
jalr t9
_nop
(translation_unit "void kwsprep(undefined4 *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  byte bVar7;\n  undefined1 *puVar6;\n  int iVar8;\n  undefined4 extraout_v1;\n  int extraout_v1_00;\n  undefined4 extraout_v1_01;\n  int extraout_v1_02;\n  undefined4 extraout_v1_03;\n  int extraout_v1_04;\n  undefined4 extraout_v1_05;\n  int extraout_v1_06;\n  undefined4 extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 extraout_v1_09;\n  int extraout_v1_10;\n  undefined4 extraout_v1_11;\n  int extraout_v1_12;\n  undefined4 extraout_v1_13;\n  int extraout_v1_14;\n  undefined4 extraout_v1_15;\n  int extraout_v1_16;\n  undefined4 extraout_v1_17;\n  int extraout_v1_18;\n  undefined4 extraout_v1_19;\n  int extraout_v1_20;\n  undefined4 extraout_v1_21;\n  int extraout_v1_22;\n  undefined4 extraout_v1_23;\n  int extraout_v1_24;\n  undefined4 extraout_v1_25;\n  int extraout_v1_26;\n  undefined4 extraout_v1_27;\n  int extraout_v1_28;\n  undefined4 extraout_v1_29;\n  int extraout_v1_30;\n  int iVar9;\n  byte bVar10;\n  byte bVar11;\n  uint uVar12;\n  byte *pbVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  undefined4 uVar22;\n  int *piVar23;\n  uint uVar24;\n  int **ppiVar25;\n  undefined4 *puVar26;\n  undefined4 *puVar27;\n  undefined4 *puVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int *piVar33;\n  int *piVar34;\n  int *piVar35;\n  int *piVar36;\n  undefined4 *local_534;\n  int *local_530;\n  undefined4 auStack_52c [256];\n  undefined4 auStack_12c [64];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = (byte *)param_1[0x151];\n  local_2c = *(int *)PTR___stack_chk_guard_000564b4;\n  puVar30 = param_1 + 0xf;\n  if (pbVar29 != (byte *)0x0) {\n    puVar30 = auStack_12c;\n  }\n  iVar31 = param_1[0xb];\n  if (iVar31 == 1) {\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\n      ppiVar25 = &local_530;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          piVar33[3] = (int)local_530;\n        }\n        piVar23 = (int *)piVar23[3];\n      } while (piVar23 != (int *)0x0);\n    }\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    if (uVar21 - param_1[3] < uVar14) {\n      _obstack_newchunk(param_1);\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      uVar21 = param_1[4];\n      uVar14 = param_1[0xd];\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) goto LAB_00020968;\n    }\n    else {\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) {\nLAB_00020968:\n        *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n      }\n    }\n    uVar5 = (uint)(puVar6 + param_1[6]) & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    iVar8 = param_1[0xc];\n    param_1[2] = uVar5;\n    param_1[0x14f] = puVar18;\n    if (0 < (int)uVar14) {\n      *puVar18 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n      iVar8 = *(int *)(iVar8 + 0xc);\n      if (1 < (int)param_1[0xd]) {\n        iVar4 = 1;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x14f] + iVar4);\n          iVar4 = iVar4 + 1;\n          *puVar6 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n          iVar8 = *(int *)(iVar8 + 0xc);\n        } while (iVar4 < (int)param_1[0xd]);\n      }\n    }\n    puVar20 = (undefined4 *)kwsalloc(param_1[0x151]);\n    uVar19 = param_1[0xd];\n    uVar15 = param_1[0x14f];\n    puVar20[0x155] = PTR_LAB_00056238 + -0x47f8;\n    kwsincr(puVar20,uVar15,uVar19);\n    _obstack_free(param_1,0);\n    puVar27 = puVar20;\n    puVar16 = param_1;\n    do {\n      puVar32 = puVar16;\n      puVar28 = puVar27;\n      puVar27 = puVar28 + 4;\n      uVar22 = puVar28[1];\n      uVar19 = puVar28[2];\n      uVar15 = puVar28[3];\n      *puVar32 = *puVar28;\n      puVar32[1] = uVar22;\n      puVar32[2] = uVar19;\n      puVar32[3] = uVar15;\n      puVar3 = PTR_free_000564c0;\n      puVar16 = puVar32 + 4;\n    } while (puVar27 != puVar20 + 0x154);\n    uVar15 = puVar28[5];\n    puVar32[4] = *puVar27;\n    puVar32[5] = uVar15;\n    (*(code *)puVar3)(puVar20);\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (iVar8 = piVar23[3]; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0xc)) {\n      while( true ) {\n        iVar9 = *(int *)(*(int *)(iVar8 + 8) + 0x1c);\n        iVar4 = *(int *)(iVar8 + 0x1c);\n        if (iVar9 < *(int *)(iVar8 + 0x1c)) {\n          *(int *)(iVar8 + 0x1c) = iVar9;\n          iVar4 = iVar9;\n        }\n        if (*(int *)(iVar8 + 0x18) <= iVar4) break;\n        *(int *)(iVar8 + 0x18) = iVar4;\n        iVar8 = *(int *)(iVar8 + 0xc);\n        if (iVar8 == 0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\nLAB_0001d27c:\n      ppiVar25 = &local_530;\n      local_530 = piVar23;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  piVar34 = local_530;\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                    piVar34 = local_530;\n                  }\n                  local_530 = (int *)piVar33[2];\n                  piVar34[3] = (int)local_530;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = piVar23[5];\n          piVar33[3] = (int)local_530;\n          if (puVar27 != (undefined4 *)0x0) {\n            puVar16 = (undefined4 *)*puVar27;\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1,puVar30);\n                    iVar8 = extraout_v1_00;\n                    if (extraout_v1_00 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_00;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_01,puVar30);\n                    iVar8 = extraout_v1_02;\n                    if (extraout_v1_02 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_02;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_03,puVar30);\n                    iVar8 = extraout_v1_04;\n                    if (extraout_v1_04 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_04;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_05,puVar30);\n                    iVar8 = extraout_v1_06;\n                    if (extraout_v1_06 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_06;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_07,puVar30);\n                    iVar8 = extraout_v1_08;\n                    if (extraout_v1_08 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_08;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_09,puVar30);\n                    iVar8 = extraout_v1_10;\n                    if (extraout_v1_10 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_10;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_11,puVar30);\n                    iVar8 = extraout_v1_12;\n                    if (extraout_v1_12 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_12;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_13,puVar30);\n                    iVar8 = extraout_v1_14;\n                    if (extraout_v1_14 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_14;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            puVar16 = (undefined4 *)puVar27[1];\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_15,puVar30);\n                    iVar8 = extraout_v1_16;\n                    if (extraout_v1_16 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_16;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_17,puVar30);\n                    iVar8 = extraout_v1_18;\n                    if (extraout_v1_18 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_18;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_19,puVar30);\n                    iVar8 = extraout_v1_20;\n                    if (extraout_v1_20 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_20;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_21,puVar30);\n                    iVar8 = extraout_v1_22;\n                    if (extraout_v1_22 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_22;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_23,puVar30);\n                    iVar8 = extraout_v1_24;\n                    if (extraout_v1_24 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_24;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_25,puVar30);\n                    iVar8 = extraout_v1_26;\n                    if (extraout_v1_26 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_26;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_27,puVar30);\n                    iVar8 = extraout_v1_28;\n                    if (extraout_v1_28 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_28;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_29,puVar30);\n                    iVar8 = extraout_v1_30;\n                    if (extraout_v1_30 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_30;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3))) {\n              *(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3)) = (byte)iVar8;\n            }\n            puVar27 = (undefined4 *)piVar23[1];\n          }\n        }\n        FUN_0001acd0(puVar27,piVar23[4],param_1[0xc],iVar31 == 1);\n        if (iVar31 == 1) {\n          iVar8 = param_1[0xd];\n          iVar4 = piVar23[4];\n          piVar23[6] = iVar8;\n          piVar23[7] = iVar8;\n          if (iVar4 == 0) goto LAB_0001dfb4;\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = *piVar23;\n          do {\n            if (puVar27 != (undefined4 *)0x0) {\n              puVar16 = (undefined4 *)*puVar27;\n              piVar33 = *(int **)(iVar4 + 4);\n              if (puVar16 == (undefined4 *)0x0) {\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001e8cc:\n                  puVar20 = (undefined4 *)*puVar16;\n                  if (puVar20 == (undefined4 *)0x0) {\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 == (undefined4 *)0x0) {\n                      if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                      bVar10 = *(byte *)(piVar33 + 3);\n                    }\n                    else {\nLAB_0001eaa0:\n                      puVar28 = (undefined4 *)*puVar20;\n                      if (puVar28 != (undefined4 *)0x0) {\n                        puVar32 = (undefined4 *)*puVar28;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 == (int *)0x0) {\n                            if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                            bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fbdc:\n                            bVar10 = *(byte *)(puVar28 + 3);\n                            piVar34 = piVar33;\n                            bVar11 = bVar7;\njoined_r0x0001fbe0:\n                            while (bVar7 != bVar10) {\n                              piVar35 = (int *)piVar34[1];\n                              if (bVar10 < bVar7) {\n                                piVar35 = (int *)*piVar34;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              piVar34 = piVar35;\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            puVar28 = (undefined4 *)puVar20[1];\n                            if (puVar28 != (undefined4 *)0x0) goto LAB_0001efdc;\n                            bVar7 = *(byte *)(puVar20 + 3);\n                            piVar34 = piVar33;\n                            bVar10 = bVar11;\n                            goto joined_r0x0001fb94;\n                          }\nLAB_0001f218:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f8cc;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f764;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f764:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f8cc:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              goto LAB_0001fbdc;\n                            }\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (iVar9 != 0) {\n                            puVar26 = (undefined4 *)puVar32[1];\n                            if (puVar26 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f9c8;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar34 = piVar33;\n                                while (*(byte *)(puVar26 + 3) != bVar10) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar26 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\nLAB_0001f9c8:\n                                piVar34 = piVar33;\n                                bVar10 = bVar7;\n                                while (bVar10 != *(byte *)(puVar32 + 3)) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\n                                piVar34 = (int *)puVar28[1];\n                                if (piVar34 != (int *)0x0) goto LAB_0001f218;\n                                bVar10 = *(byte *)(puVar28 + 3);\n                                piVar34 = piVar33;\n                                bVar11 = bVar7;\n                                goto joined_r0x0001fbe0;\n                              }\n                            }\n                          }\n                        }\nLAB_0001e864:\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar11 = *(byte *)(piVar33 + 3);\n                      }\n                      else {\nLAB_0001efdc:\n                        piVar34 = (int *)*puVar28;\n                        if (piVar34 != (int *)0x0) {\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f918;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f654;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f654:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f918:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f3d4;\n                              bVar10 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar11 = bVar7;\n                              goto joined_r0x00020768;\n                            }\n                          }\n                          goto LAB_0001e864;\n                        }\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar7 = *(byte *)(piVar33 + 3);\n                        }\n                        else {\nLAB_0001f3d4:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            puVar32 = (undefined4 *)piVar34[1];\n                            if (puVar32 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                goto LAB_00020814;\n                              }\n                            }\n                            else {\nLAB_0001fcfc:\n                              iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                bVar7 = bVar10;\n                                piVar35 = piVar33;\n                                while (*(byte *)(puVar32 + 3) != bVar7) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar7) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar7 = *(byte *)(piVar35 + 3);\n                                }\nLAB_00020814:\n                                bVar11 = *(byte *)(piVar34 + 3);\n                                piVar34 = piVar33;\n                                bVar7 = bVar10;\n                                goto joined_r0x00020818;\n                              }\n                            }\n                            goto LAB_0001e864;\n                          }\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 == 0) ||\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                             (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\n                          bVar7 = bVar10;\n                          piVar35 = piVar33;\n                          while (bVar7 != *(byte *)(puVar32 + 3)) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(puVar32 + 3) < bVar7) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar7 = *(byte *)(piVar35 + 3);\n                          }\n                          puVar32 = (undefined4 *)piVar34[1];\n                          if (puVar32 != (undefined4 *)0x0) goto LAB_0001fcfc;\n                          bVar11 = *(byte *)(piVar34 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x00020818:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                        }\n                        bVar10 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar11 = bVar7;\njoined_r0x00020768:\n                        while (bVar10 != bVar7) {\n                          piVar35 = (int *)piVar34[1];\n                          if (bVar10 < bVar7) {\n                            piVar35 = (int *)*piVar34;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          piVar34 = piVar35;\n                          bVar7 = *(byte *)(piVar35 + 3);\n                        }\n                      }\n                      bVar7 = *(byte *)(puVar20 + 3);\n                      piVar34 = piVar33;\n                      bVar10 = bVar11;\njoined_r0x0001fb94:\n                      while (bVar7 != bVar11) {\n                        piVar35 = (int *)piVar34[1];\n                        if (bVar7 < bVar11) {\n                          piVar35 = (int *)*piVar34;\n                        }\n                        if (piVar35 == (int *)0x0) {\n                          iVar9 = piVar23[5];\n                          goto LAB_0001e868;\n                        }\n                        piVar34 = piVar35;\n                        bVar11 = *(byte *)(piVar35 + 3);\n                      }\n                    }\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  else {\n                    puVar28 = (undefined4 *)*puVar20;\n                    if (puVar28 == (undefined4 *)0x0) {\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f374:\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f378;\n                      }\nLAB_0001eb64:\n                      puVar32 = (undefined4 *)*puVar28;\n                      if (puVar32 == (undefined4 *)0x0) {\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001fc3c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x0001fc40:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f374;\n                        }\nLAB_0001f180:\n                        puVar32 = (undefined4 *)*piVar34;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          local_534 = (undefined4 *)piVar34[1];\n                          if (local_534 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001f880;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*local_534);\n                            if (iVar9 != 0) goto LAB_0001f6dc;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar35 = piVar33;\n                            while (bVar7 != *(byte *)(puVar32 + 3)) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 != (undefined4 *)0x0) {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 == 0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\nLAB_0001f6dc:\n                              iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                              if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar35 = piVar33;\n                              while (*(byte *)(local_534 + 3) != bVar7) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(local_534 + 3) < bVar7) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar35 + 3);\n                              }\n                            }\nLAB_0001f880:\n                            piVar35 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(piVar34 + 3) != bVar7) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(piVar34 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            goto LAB_0001fc3c;\n                          }\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faac;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faac:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f180;\n                              bVar11 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              goto joined_r0x0001fc40;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f46c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\n                          goto joined_r0x0001f470;\n                        }\n                      }\n                      else {\nLAB_0001ed6c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001fb44;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001fb44:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f46c;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\n                    bVar7 = bVar10;\n                    piVar34 = piVar33;\n                    while (*(byte *)(puVar32 + 3) != bVar7) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar7) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar7 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ed6c;\n                    bVar11 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\njoined_r0x0001f470:\n                    while (bVar10 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar10) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar10 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001eb64;\n                    bVar11 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar7;\njoined_r0x0001f378:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 != (undefined4 *)0x0) goto LAB_0001eaa0;\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  while (bVar11 != bVar10) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              else {\n                puVar20 = (undefined4 *)*puVar16;\n                if (puVar20 == (undefined4 *)0x0) {\n                  puVar20 = (undefined4 *)puVar16[1];\n                  if (puVar20 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001ef7c:\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                    goto joined_r0x0001ef80;\n                  }\nLAB_0001e974:\n                  puVar28 = (undefined4 *)*puVar20;\n                  if (puVar28 != (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f4cc:\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001f4d0;\n                        }\n                      }\n                      else {\nLAB_0001ee1c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faf8;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar34 = piVar33;\n                              while (bVar10 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faf8:\n                              piVar34 = piVar33;\n                              bVar10 = bVar7;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f4cc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\n                    bVar10 = bVar7;\n                    piVar34 = piVar33;\n                    while (bVar10 != *(byte *)(puVar32 + 3)) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar10) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar10 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ee1c;\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001f4d0:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001ec1c;\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\njoined_r0x0001f32c:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar7 < bVar11) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar11 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001ef7c;\n                  }\n                  puVar28 = (undefined4 *)puVar20[1];\n                  if (puVar28 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar11 = *(byte *)(piVar33 + 3);\nLAB_0001f328:\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\n                    goto joined_r0x0001f32c;\n                  }\nLAB_0001ec1c:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (iVar9 != 0) {\n                      puVar26 = (undefined4 *)puVar32[1];\n                      if (puVar26 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          goto LAB_0001fa14;\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                        if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0))\n                           && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar34 = piVar33;\n                          while (bVar10 != *(byte *)(puVar26 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar26 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\nLAB_0001fa14:\n                          piVar34 = piVar33;\n                          bVar10 = bVar7;\n                          while (bVar10 != *(byte *)(puVar32 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar32 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 != (int *)0x0) goto LAB_0001f0e8;\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001fc8c;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  piVar34 = (int *)puVar28[1];\n                  if (piVar34 == (int *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fc88:\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001fc8c:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001f328;\n                  }\nLAB_0001f0e8:\n                  puVar32 = (undefined4 *)*piVar34;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    local_534 = (undefined4 *)piVar34[1];\n                    if (local_534 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f964:\n                        piVar35 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(piVar34 + 3) != bVar10) {\n                          piVar36 = (int *)*piVar35;\n                          piVar35 = (int *)piVar35[1];\n                          if (*(byte *)(piVar34 + 3) < bVar10) {\n                            piVar35 = piVar36;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar35 + 3);\n                        }\n                        goto LAB_0001fc88;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*local_534);\n                      if (iVar9 != 0) {\nLAB_0001f5cc:\n                        iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                        if ((iVar9 != 0) && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar35 = piVar33;\n                          while (*(byte *)(local_534 + 3) != bVar10) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(local_534 + 3) < bVar10) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f964;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                  bVar10 = bVar7;\n                  piVar35 = piVar33;\n                  while (bVar10 != *(byte *)(puVar32 + 3)) {\n                    piVar36 = (int *)*piVar35;\n                    piVar35 = (int *)piVar35[1];\n                    if (*(byte *)(puVar32 + 3) < bVar10) {\n                      piVar35 = piVar36;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                  local_534 = (undefined4 *)piVar34[1];\n                  if (local_534 == (undefined4 *)0x0) goto LAB_0001f964;\n                  iVar9 = FUN_0001ae90(piVar33,*local_534);\n                  if (iVar9 != 0) goto LAB_0001f5cc;\n                  iVar9 = piVar23[5];\nLAB_0001e868:\n                  iVar9 = iVar9 - *(int *)(iVar4 + 0x14);\n                  if (iVar9 < *(int *)(iVar4 + 0x18)) {\n                    *(int *)(iVar4 + 0x18) = iVar9;\n                  }\n                  goto LAB_0001e884;\n                }\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  iVar9 = FUN_0001ae90(piVar33,*puVar28);\n                  if (iVar9 != 0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        goto LAB_0001ed20;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0))\n                         && (piVar33 != (int *)0x0)) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        bVar10 = bVar7;\n                        piVar34 = piVar33;\n                        while (bVar10 != *(byte *)(puVar32 + 3)) {\n                          iVar9 = *piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar32 + 3) < bVar10) {\n                            piVar34 = (int *)iVar9;\n                          }\n                          if (piVar34 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\nLAB_0001ed20:\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(puVar28 + 3) != bVar10) {\n                          piVar35 = (int *)*piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar28 + 3) < bVar10) {\n                            piVar34 = piVar35;\n                          }\n                          if (piVar34 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\n                        puVar28 = (undefined4 *)puVar20[1];\n                        if (puVar28 != (undefined4 *)0x0) goto LAB_0001ea10;\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f08c;\n                      }\n                    }\n                  }\n                  goto LAB_0001e864;\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001ea10:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f52c:\n                        bVar11 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar7 = bVar10;\n                        goto joined_r0x0001f530;\n                      }\n                    }\n                    else {\nLAB_0001eecc:\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (iVar9 != 0) {\n                        puVar26 = (undefined4 *)puVar32[1];\n                        if (puVar26 == (undefined4 *)0x0) {\n                          if (piVar33 != (int *)0x0) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            goto LAB_0001fa60;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar34 = piVar33;\n                            while (*(byte *)(puVar26 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar26 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\nLAB_0001fa60:\n                            piVar34 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(puVar32 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\n                            goto LAB_0001f52c;\n                          }\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar10 = *(byte *)(piVar33 + 3);\n                  bVar7 = bVar10;\n                  piVar34 = piVar33;\n                  while (*(byte *)(puVar32 + 3) != bVar7) {\n                    piVar35 = (int *)*piVar34;\n                    piVar34 = (int *)piVar34[1];\n                    if (*(byte *)(puVar32 + 3) < bVar7) {\n                      piVar34 = piVar35;\n                    }\n                    if (piVar34 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar7 = *(byte *)(piVar34 + 3);\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) goto LAB_0001eecc;\n                  bVar11 = *(byte *)(puVar28 + 3);\n                  piVar34 = piVar33;\n                  bVar7 = bVar10;\njoined_r0x0001f530:\n                  while (bVar10 != bVar11) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar11 = *(byte *)(puVar20 + 3);\n                piVar34 = piVar33;\n                bVar10 = bVar7;\njoined_r0x0001f08c:\n                while (bVar7 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar7) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar7 = *(byte *)(piVar35 + 3);\n                }\n                puVar20 = (undefined4 *)puVar16[1];\n                if (puVar20 != (undefined4 *)0x0) goto LAB_0001e974;\n                bVar11 = *(byte *)(puVar16 + 3);\n                piVar34 = piVar33;\n                bVar7 = bVar10;\njoined_r0x0001ef80:\n                while (bVar10 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar10) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar10 = *(byte *)(piVar35 + 3);\n                }\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 != (undefined4 *)0x0) goto LAB_0001e8cc;\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              while (bVar10 != bVar7) {\n                piVar34 = (int *)*piVar33;\n                piVar33 = (int *)piVar33[1];\n                if (bVar10 < bVar7) {\n                  piVar33 = piVar34;\n                }\n                if (piVar33 == (int *)0x0) {\n                  iVar9 = piVar23[5];\n                  goto LAB_0001e868;\n                }\n                bVar7 = *(byte *)(piVar33 + 3);\n              }\n            }\nLAB_0001e884:\n            if ((iVar8 != 0) &&\n               (iVar9 = piVar23[5] - *(int *)(iVar4 + 0x14), iVar9 < *(int *)(iVar4 + 0x1c))) {\n              *(int *)(iVar4 + 0x1c) = iVar9;\n            }\n            iVar4 = *(int *)(iVar4 + 0x10);\n          } while (iVar4 != 0);\n          piVar23 = (int *)piVar23[3];\n        }\n        else {\nLAB_0001dfb4:\n          piVar23 = (int *)piVar23[3];\n        }\n      } while (piVar23 != (int *)0x0);\n      if (iVar31 == 1) {\n        piVar23 = (int *)param_1[0xc];\n        goto LAB_000206c8;\n      }\n    }\n  }\nLAB_0001dfc8:\n  if (pbVar29 == (byte *)0x0) {\n    puVar16 = param_1 + 0x4f;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) goto LAB_0001dff8;\nLAB_0001f81c:\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((*piVar23 != 0) && (uVar17 = uVar5, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar14 == uVar5) {\n          uVar17 = uVar14;\n          uVar24 = uVar21;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar17 = 0xffffffff;\n            uVar24 = uVar21;\n          }\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  else {\n    puVar16 = auStack_52c;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) {\nLAB_0001dff8:\n      puVar20 = (undefined4 *)*puVar27;\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar20 = (undefined4 *)puVar27[1];\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar16[*(byte *)(puVar27 + 3)] = puVar27[2];\n      if (pbVar29 == (byte *)0x0) goto LAB_0001f81c;\n    }\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar12 = (uint)pbVar29[uVar5];\n      iVar8 = puVar16[uVar12];\n      *piVar23 = iVar8;\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((iVar8 != 0) && (uVar17 = uVar12, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar12 == uVar14) {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else if ((uVar12 != uVar5) || (uVar17 = uVar14, uVar14 != uVar21)) {\n          uVar17 = 0xffffffff;\n          uVar24 = uVar21;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  param_1[0x152] = uVar17;\n  param_1[0x153] = uVar24;\n  if (iVar31 != 1) goto LAB_0001e6f8;\n  uVar21 = param_1[4];\n  uVar14 = param_1[0xd];\n  if (uVar21 - param_1[3] < uVar14) {\n    _obstack_newchunk(param_1);\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) goto LAB_000209a8;\n  }\n  else {\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) {\nLAB_000209a8:\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n  }\n  uVar5 = iVar31 + param_1[6] & ~param_1[6];\n  param_1[3] = uVar5;\n  if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n    param_1[3] = uVar21;\n    uVar5 = uVar21;\n  }\n  piVar23 = (int *)param_1[0xc];\n  param_1[2] = uVar5;\n  param_1[0x14f] = iVar8;\n  if (-1 < (int)(uVar14 - 1)) {\n    *(undefined1 *)(iVar8 + (uVar14 - 1)) = *(undefined1 *)(piVar23[1] + 0xc);\n    piVar23 = (int *)piVar23[3];\n    for (iVar31 = uVar14 - 2; iVar31 != -1; iVar31 = iVar31 + -1) {\n      *(undefined1 *)(param_1[0x14f] + iVar31) = *(undefined1 *)(piVar23[1] + 0xc);\n      piVar23 = (int *)piVar23[3];\n    }\n    uVar14 = param_1[0xd];\n  }\n  bVar1 = (int)uVar14 < 2;\n  if (!bVar1) {\n    uVar21 = param_1[4];\n    iVar31 = param_1[3];\n    uVar5 = (uVar14 - 1) * 4;\n    if (uVar21 - iVar31 < uVar5) {\n      _obstack_newchunk(param_1,uVar5);\n      uVar14 = param_1[0xd];\n      iVar31 = param_1[3];\n      uVar21 = param_1[4];\n      bVar1 = (int)uVar14 < 2;\n    }\n    piVar33 = (int *)param_1[2];\n    piVar23 = (int *)(iVar31 + uVar5);\n    param_1[3] = piVar23;\n    if (piVar23 == piVar33) {\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n    uVar5 = (int)piVar23 + param_1[6] & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    param_1[2] = uVar5;\n    param_1[0x150] = piVar33;\n    piVar23 = *(int **)(param_1[0xc] + 0xc);\n    if (!bVar1) {\n      iVar31 = 0;\n      do {\n        piVar34 = piVar23 + 6;\n        piVar23 = (int *)piVar23[3];\n        iVar31 = iVar31 + 1;\n        *piVar33 = *piVar34;\n        uVar14 = param_1[0xd];\n        piVar33 = piVar33 + 1;\n      } while (iVar31 < (int)(uVar14 - 1));\n    }\n    bVar7 = *(byte *)(param_1[0x14f] + uVar14 + -2);\n    if (pbVar29 != (byte *)0x0) {\n      bVar7 = pbVar29[bVar7];\n    }\n    *(byte *)(param_1 + 0x154) = bVar7;\n  }\nLAB_0001e6f8:\n  if (pbVar29 != (byte *)0x0) {\n    pbVar13 = pbVar29 + 0x100;\n    piVar33 = param_1 + 0xf;\n    do {\n      bVar7 = *pbVar29;\n      piVar23 = (int *)((int)piVar33 + 1);\n      pbVar29 = pbVar29 + 1;\n      *(undefined1 *)piVar33 = *(undefined1 *)((int)puVar30 + (uint)bVar7);\n      piVar33 = piVar23;\n    } while (pbVar13 != pbVar29);\n  }\n  if (local_2c == *(int *)puVar2) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n                    /* WARNING: Could not recover jumptable at 0x000209d4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)piVar23[0x155])();\n  return;\n}\n\n" (function_definition "void kwsprep(undefined4 *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  byte bVar7;\n  undefined1 *puVar6;\n  int iVar8;\n  undefined4 extraout_v1;\n  int extraout_v1_00;\n  undefined4 extraout_v1_01;\n  int extraout_v1_02;\n  undefined4 extraout_v1_03;\n  int extraout_v1_04;\n  undefined4 extraout_v1_05;\n  int extraout_v1_06;\n  undefined4 extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 extraout_v1_09;\n  int extraout_v1_10;\n  undefined4 extraout_v1_11;\n  int extraout_v1_12;\n  undefined4 extraout_v1_13;\n  int extraout_v1_14;\n  undefined4 extraout_v1_15;\n  int extraout_v1_16;\n  undefined4 extraout_v1_17;\n  int extraout_v1_18;\n  undefined4 extraout_v1_19;\n  int extraout_v1_20;\n  undefined4 extraout_v1_21;\n  int extraout_v1_22;\n  undefined4 extraout_v1_23;\n  int extraout_v1_24;\n  undefined4 extraout_v1_25;\n  int extraout_v1_26;\n  undefined4 extraout_v1_27;\n  int extraout_v1_28;\n  undefined4 extraout_v1_29;\n  int extraout_v1_30;\n  int iVar9;\n  byte bVar10;\n  byte bVar11;\n  uint uVar12;\n  byte *pbVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  undefined4 uVar22;\n  int *piVar23;\n  uint uVar24;\n  int **ppiVar25;\n  undefined4 *puVar26;\n  undefined4 *puVar27;\n  undefined4 *puVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int *piVar33;\n  int *piVar34;\n  int *piVar35;\n  int *piVar36;\n  undefined4 *local_534;\n  int *local_530;\n  undefined4 auStack_52c [256];\n  undefined4 auStack_12c [64];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = (byte *)param_1[0x151];\n  local_2c = *(int *)PTR___stack_chk_guard_000564b4;\n  puVar30 = param_1 + 0xf;\n  if (pbVar29 != (byte *)0x0) {\n    puVar30 = auStack_12c;\n  }\n  iVar31 = param_1[0xb];\n  if (iVar31 == 1) {\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\n      ppiVar25 = &local_530;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          piVar33[3] = (int)local_530;\n        }\n        piVar23 = (int *)piVar23[3];\n      } while (piVar23 != (int *)0x0);\n    }\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    if (uVar21 - param_1[3] < uVar14) {\n      _obstack_newchunk(param_1);\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      uVar21 = param_1[4];\n      uVar14 = param_1[0xd];\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) goto LAB_00020968;\n    }\n    else {\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) {\nLAB_00020968:\n        *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n      }\n    }\n    uVar5 = (uint)(puVar6 + param_1[6]) & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    iVar8 = param_1[0xc];\n    param_1[2] = uVar5;\n    param_1[0x14f] = puVar18;\n    if (0 < (int)uVar14) {\n      *puVar18 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n      iVar8 = *(int *)(iVar8 + 0xc);\n      if (1 < (int)param_1[0xd]) {\n        iVar4 = 1;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x14f] + iVar4);\n          iVar4 = iVar4 + 1;\n          *puVar6 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n          iVar8 = *(int *)(iVar8 + 0xc);\n        } while (iVar4 < (int)param_1[0xd]);\n      }\n    }\n    puVar20 = (undefined4 *)kwsalloc(param_1[0x151]);\n    uVar19 = param_1[0xd];\n    uVar15 = param_1[0x14f];\n    puVar20[0x155] = PTR_LAB_00056238 + -0x47f8;\n    kwsincr(puVar20,uVar15,uVar19);\n    _obstack_free(param_1,0);\n    puVar27 = puVar20;\n    puVar16 = param_1;\n    do {\n      puVar32 = puVar16;\n      puVar28 = puVar27;\n      puVar27 = puVar28 + 4;\n      uVar22 = puVar28[1];\n      uVar19 = puVar28[2];\n      uVar15 = puVar28[3];\n      *puVar32 = *puVar28;\n      puVar32[1] = uVar22;\n      puVar32[2] = uVar19;\n      puVar32[3] = uVar15;\n      puVar3 = PTR_free_000564c0;\n      puVar16 = puVar32 + 4;\n    } while (puVar27 != puVar20 + 0x154);\n    uVar15 = puVar28[5];\n    puVar32[4] = *puVar27;\n    puVar32[5] = uVar15;\n    (*(code *)puVar3)(puVar20);\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (iVar8 = piVar23[3]; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0xc)) {\n      while( true ) {\n        iVar9 = *(int *)(*(int *)(iVar8 + 8) + 0x1c);\n        iVar4 = *(int *)(iVar8 + 0x1c);\n        if (iVar9 < *(int *)(iVar8 + 0x1c)) {\n          *(int *)(iVar8 + 0x1c) = iVar9;\n          iVar4 = iVar9;\n        }\n        if (*(int *)(iVar8 + 0x18) <= iVar4) break;\n        *(int *)(iVar8 + 0x18) = iVar4;\n        iVar8 = *(int *)(iVar8 + 0xc);\n        if (iVar8 == 0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\nLAB_0001d27c:\n      ppiVar25 = &local_530;\n      local_530 = piVar23;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  piVar34 = local_530;\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                    piVar34 = local_530;\n                  }\n                  local_530 = (int *)piVar33[2];\n                  piVar34[3] = (int)local_530;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = piVar23[5];\n          piVar33[3] = (int)local_530;\n          if (puVar27 != (undefined4 *)0x0) {\n            puVar16 = (undefined4 *)*puVar27;\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1,puVar30);\n                    iVar8 = extraout_v1_00;\n                    if (extraout_v1_00 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_00;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_01,puVar30);\n                    iVar8 = extraout_v1_02;\n                    if (extraout_v1_02 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_02;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_03,puVar30);\n                    iVar8 = extraout_v1_04;\n                    if (extraout_v1_04 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_04;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_05,puVar30);\n                    iVar8 = extraout_v1_06;\n                    if (extraout_v1_06 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_06;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_07,puVar30);\n                    iVar8 = extraout_v1_08;\n                    if (extraout_v1_08 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_08;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_09,puVar30);\n                    iVar8 = extraout_v1_10;\n                    if (extraout_v1_10 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_10;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_11,puVar30);\n                    iVar8 = extraout_v1_12;\n                    if (extraout_v1_12 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_12;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_13,puVar30);\n                    iVar8 = extraout_v1_14;\n                    if (extraout_v1_14 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_14;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            puVar16 = (undefined4 *)puVar27[1];\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_15,puVar30);\n                    iVar8 = extraout_v1_16;\n                    if (extraout_v1_16 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_16;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_17,puVar30);\n                    iVar8 = extraout_v1_18;\n                    if (extraout_v1_18 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_18;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_19,puVar30);\n                    iVar8 = extraout_v1_20;\n                    if (extraout_v1_20 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_20;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_21,puVar30);\n                    iVar8 = extraout_v1_22;\n                    if (extraout_v1_22 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_22;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_23,puVar30);\n                    iVar8 = extraout_v1_24;\n                    if (extraout_v1_24 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_24;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_25,puVar30);\n                    iVar8 = extraout_v1_26;\n                    if (extraout_v1_26 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_26;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_27,puVar30);\n                    iVar8 = extraout_v1_28;\n                    if (extraout_v1_28 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_28;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_29,puVar30);\n                    iVar8 = extraout_v1_30;\n                    if (extraout_v1_30 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_30;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3))) {\n              *(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3)) = (byte)iVar8;\n            }\n            puVar27 = (undefined4 *)piVar23[1];\n          }\n        }\n        FUN_0001acd0(puVar27,piVar23[4],param_1[0xc],iVar31 == 1);\n        if (iVar31 == 1) {\n          iVar8 = param_1[0xd];\n          iVar4 = piVar23[4];\n          piVar23[6] = iVar8;\n          piVar23[7] = iVar8;\n          if (iVar4 == 0) goto LAB_0001dfb4;\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = *piVar23;\n          do {\n            if (puVar27 != (undefined4 *)0x0) {\n              puVar16 = (undefined4 *)*puVar27;\n              piVar33 = *(int **)(iVar4 + 4);\n              if (puVar16 == (undefined4 *)0x0) {\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001e8cc:\n                  puVar20 = (undefined4 *)*puVar16;\n                  if (puVar20 == (undefined4 *)0x0) {\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 == (undefined4 *)0x0) {\n                      if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                      bVar10 = *(byte *)(piVar33 + 3);\n                    }\n                    else {\nLAB_0001eaa0:\n                      puVar28 = (undefined4 *)*puVar20;\n                      if (puVar28 != (undefined4 *)0x0) {\n                        puVar32 = (undefined4 *)*puVar28;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 == (int *)0x0) {\n                            if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                            bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fbdc:\n                            bVar10 = *(byte *)(puVar28 + 3);\n                            piVar34 = piVar33;\n                            bVar11 = bVar7;\njoined_r0x0001fbe0:\n                            while (bVar7 != bVar10) {\n                              piVar35 = (int *)piVar34[1];\n                              if (bVar10 < bVar7) {\n                                piVar35 = (int *)*piVar34;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              piVar34 = piVar35;\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            puVar28 = (undefined4 *)puVar20[1];\n                            if (puVar28 != (undefined4 *)0x0) goto LAB_0001efdc;\n                            bVar7 = *(byte *)(puVar20 + 3);\n                            piVar34 = piVar33;\n                            bVar10 = bVar11;\n                            goto joined_r0x0001fb94;\n                          }\nLAB_0001f218:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f8cc;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f764;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f764:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f8cc:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              goto LAB_0001fbdc;\n                            }\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (iVar9 != 0) {\n                            puVar26 = (undefined4 *)puVar32[1];\n                            if (puVar26 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f9c8;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar34 = piVar33;\n                                while (*(byte *)(puVar26 + 3) != bVar10) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar26 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\nLAB_0001f9c8:\n                                piVar34 = piVar33;\n                                bVar10 = bVar7;\n                                while (bVar10 != *(byte *)(puVar32 + 3)) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\n                                piVar34 = (int *)puVar28[1];\n                                if (piVar34 != (int *)0x0) goto LAB_0001f218;\n                                bVar10 = *(byte *)(puVar28 + 3);\n                                piVar34 = piVar33;\n                                bVar11 = bVar7;\n                                goto joined_r0x0001fbe0;\n                              }\n                            }\n                          }\n                        }\nLAB_0001e864:\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar11 = *(byte *)(piVar33 + 3);\n                      }\n                      else {\nLAB_0001efdc:\n                        piVar34 = (int *)*puVar28;\n                        if (piVar34 != (int *)0x0) {\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f918;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f654;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f654:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f918:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f3d4;\n                              bVar10 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar11 = bVar7;\n                              goto joined_r0x00020768;\n                            }\n                          }\n                          goto LAB_0001e864;\n                        }\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar7 = *(byte *)(piVar33 + 3);\n                        }\n                        else {\nLAB_0001f3d4:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            puVar32 = (undefined4 *)piVar34[1];\n                            if (puVar32 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                goto LAB_00020814;\n                              }\n                            }\n                            else {\nLAB_0001fcfc:\n                              iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                bVar7 = bVar10;\n                                piVar35 = piVar33;\n                                while (*(byte *)(puVar32 + 3) != bVar7) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar7) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar7 = *(byte *)(piVar35 + 3);\n                                }\nLAB_00020814:\n                                bVar11 = *(byte *)(piVar34 + 3);\n                                piVar34 = piVar33;\n                                bVar7 = bVar10;\n                                goto joined_r0x00020818;\n                              }\n                            }\n                            goto LAB_0001e864;\n                          }\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 == 0) ||\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                             (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\n                          bVar7 = bVar10;\n                          piVar35 = piVar33;\n                          while (bVar7 != *(byte *)(puVar32 + 3)) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(puVar32 + 3) < bVar7) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar7 = *(byte *)(piVar35 + 3);\n                          }\n                          puVar32 = (undefined4 *)piVar34[1];\n                          if (puVar32 != (undefined4 *)0x0) goto LAB_0001fcfc;\n                          bVar11 = *(byte *)(piVar34 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x00020818:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                        }\n                        bVar10 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar11 = bVar7;\njoined_r0x00020768:\n                        while (bVar10 != bVar7) {\n                          piVar35 = (int *)piVar34[1];\n                          if (bVar10 < bVar7) {\n                            piVar35 = (int *)*piVar34;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          piVar34 = piVar35;\n                          bVar7 = *(byte *)(piVar35 + 3);\n                        }\n                      }\n                      bVar7 = *(byte *)(puVar20 + 3);\n                      piVar34 = piVar33;\n                      bVar10 = bVar11;\njoined_r0x0001fb94:\n                      while (bVar7 != bVar11) {\n                        piVar35 = (int *)piVar34[1];\n                        if (bVar7 < bVar11) {\n                          piVar35 = (int *)*piVar34;\n                        }\n                        if (piVar35 == (int *)0x0) {\n                          iVar9 = piVar23[5];\n                          goto LAB_0001e868;\n                        }\n                        piVar34 = piVar35;\n                        bVar11 = *(byte *)(piVar35 + 3);\n                      }\n                    }\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  else {\n                    puVar28 = (undefined4 *)*puVar20;\n                    if (puVar28 == (undefined4 *)0x0) {\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f374:\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f378;\n                      }\nLAB_0001eb64:\n                      puVar32 = (undefined4 *)*puVar28;\n                      if (puVar32 == (undefined4 *)0x0) {\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001fc3c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x0001fc40:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f374;\n                        }\nLAB_0001f180:\n                        puVar32 = (undefined4 *)*piVar34;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          local_534 = (undefined4 *)piVar34[1];\n                          if (local_534 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001f880;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*local_534);\n                            if (iVar9 != 0) goto LAB_0001f6dc;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar35 = piVar33;\n                            while (bVar7 != *(byte *)(puVar32 + 3)) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 != (undefined4 *)0x0) {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 == 0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\nLAB_0001f6dc:\n                              iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                              if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar35 = piVar33;\n                              while (*(byte *)(local_534 + 3) != bVar7) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(local_534 + 3) < bVar7) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar35 + 3);\n                              }\n                            }\nLAB_0001f880:\n                            piVar35 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(piVar34 + 3) != bVar7) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(piVar34 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            goto LAB_0001fc3c;\n                          }\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faac;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faac:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f180;\n                              bVar11 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              goto joined_r0x0001fc40;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f46c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\n                          goto joined_r0x0001f470;\n                        }\n                      }\n                      else {\nLAB_0001ed6c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001fb44;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001fb44:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f46c;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\n                    bVar7 = bVar10;\n                    piVar34 = piVar33;\n                    while (*(byte *)(puVar32 + 3) != bVar7) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar7) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar7 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ed6c;\n                    bVar11 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\njoined_r0x0001f470:\n                    while (bVar10 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar10) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar10 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001eb64;\n                    bVar11 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar7;\njoined_r0x0001f378:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 != (undefined4 *)0x0) goto LAB_0001eaa0;\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  while (bVar11 != bVar10) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              else {\n                puVar20 = (undefined4 *)*puVar16;\n                if (puVar20 == (undefined4 *)0x0) {\n                  puVar20 = (undefined4 *)puVar16[1];\n                  if (puVar20 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001ef7c:\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                    goto joined_r0x0001ef80;\n                  }\nLAB_0001e974:\n                  puVar28 = (undefined4 *)*puVar20;\n                  if (puVar28 != (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f4cc:\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001f4d0;\n                        }\n                      }\n                      else {\nLAB_0001ee1c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faf8;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar34 = piVar33;\n                              while (bVar10 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faf8:\n                              piVar34 = piVar33;\n                              bVar10 = bVar7;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f4cc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\n                    bVar10 = bVar7;\n                    piVar34 = piVar33;\n                    while (bVar10 != *(byte *)(puVar32 + 3)) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar10) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar10 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ee1c;\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001f4d0:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001ec1c;\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\njoined_r0x0001f32c:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar7 < bVar11) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar11 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001ef7c;\n                  }\n                  puVar28 = (undefined4 *)puVar20[1];\n                  if (puVar28 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar11 = *(byte *)(piVar33 + 3);\nLAB_0001f328:\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\n                    goto joined_r0x0001f32c;\n                  }\nLAB_0001ec1c:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (iVar9 != 0) {\n                      puVar26 = (undefined4 *)puVar32[1];\n                      if (puVar26 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          goto LAB_0001fa14;\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                        if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0))\n                           && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar34 = piVar33;\n                          while (bVar10 != *(byte *)(puVar26 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar26 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\nLAB_0001fa14:\n                          piVar34 = piVar33;\n                          bVar10 = bVar7;\n                          while (bVar10 != *(byte *)(puVar32 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar32 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 != (int *)0x0) goto LAB_0001f0e8;\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001fc8c;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  piVar34 = (int *)puVar28[1];\n                  if (piVar34 == (int *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fc88:\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001fc8c:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001f328;\n                  }\nLAB_0001f0e8:\n                  puVar32 = (undefined4 *)*piVar34;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    local_534 = (undefined4 *)piVar34[1];\n                    if (local_534 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f964:\n                        piVar35 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(piVar34 + 3) != bVar10) {\n                          piVar36 = (int *)*piVar35;\n                          piVar35 = (int *)piVar35[1];\n                          if (*(byte *)(piVar34 + 3) < bVar10) {\n                            piVar35 = piVar36;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar35 + 3);\n                        }\n                        goto LAB_0001fc88;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*local_534);\n                      if (iVar9 != 0) {\nLAB_0001f5cc:\n                        iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                        if ((iVar9 != 0) && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar35 = piVar33;\n                          while (*(byte *)(local_534 + 3) != bVar10) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(local_534 + 3) < bVar10) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f964;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                  bVar10 = bVar7;\n                  piVar35 = piVar33;\n                  while (bVar10 != *(byte *)(puVar32 + 3)) {\n                    piVar36 = (int *)*piVar35;\n                    piVar35 = (int *)piVar35[1];\n                    if (*(byte *)(puVar32 + 3) < bVar10) {\n                      piVar35 = piVar36;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                  local_534 = (undefined4 *)piVar34[1];\n                  if (local_534 == (undefined4 *)0x0) goto LAB_0001f964;\n                  iVar9 = FUN_0001ae90(piVar33,*local_534);\n                  if (iVar9 != 0) goto LAB_0001f5cc;\n                  iVar9 = piVar23[5];\nLAB_0001e868:\n                  iVar9 = iVar9 - *(int *)(iVar4 + 0x14);\n                  if (iVar9 < *(int *)(iVar4 + 0x18)) {\n                    *(int *)(iVar4 + 0x18) = iVar9;\n                  }\n                  goto LAB_0001e884;\n                }\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  iVar9 = FUN_0001ae90(piVar33,*puVar28);\n                  if (iVar9 != 0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        goto LAB_0001ed20;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0))\n                         && (piVar33 != (int *)0x0)) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        bVar10 = bVar7;\n                        piVar34 = piVar33;\n                        while (bVar10 != *(byte *)(puVar32 + 3)) {\n                          iVar9 = *piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar32 + 3) < bVar10) {\n                            piVar34 = (int *)iVar9;\n                          }\n                          if (piVar34 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\nLAB_0001ed20:\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(puVar28 + 3) != bVar10) {\n                          piVar35 = (int *)*piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar28 + 3) < bVar10) {\n                            piVar34 = piVar35;\n                          }\n                          if (piVar34 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\n                        puVar28 = (undefined4 *)puVar20[1];\n                        if (puVar28 != (undefined4 *)0x0) goto LAB_0001ea10;\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f08c;\n                      }\n                    }\n                  }\n                  goto LAB_0001e864;\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001ea10:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f52c:\n                        bVar11 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar7 = bVar10;\n                        goto joined_r0x0001f530;\n                      }\n                    }\n                    else {\nLAB_0001eecc:\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (iVar9 != 0) {\n                        puVar26 = (undefined4 *)puVar32[1];\n                        if (puVar26 == (undefined4 *)0x0) {\n                          if (piVar33 != (int *)0x0) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            goto LAB_0001fa60;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar34 = piVar33;\n                            while (*(byte *)(puVar26 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar26 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\nLAB_0001fa60:\n                            piVar34 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(puVar32 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\n                            goto LAB_0001f52c;\n                          }\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar10 = *(byte *)(piVar33 + 3);\n                  bVar7 = bVar10;\n                  piVar34 = piVar33;\n                  while (*(byte *)(puVar32 + 3) != bVar7) {\n                    piVar35 = (int *)*piVar34;\n                    piVar34 = (int *)piVar34[1];\n                    if (*(byte *)(puVar32 + 3) < bVar7) {\n                      piVar34 = piVar35;\n                    }\n                    if (piVar34 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar7 = *(byte *)(piVar34 + 3);\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) goto LAB_0001eecc;\n                  bVar11 = *(byte *)(puVar28 + 3);\n                  piVar34 = piVar33;\n                  bVar7 = bVar10;\njoined_r0x0001f530:\n                  while (bVar10 != bVar11) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar11 = *(byte *)(puVar20 + 3);\n                piVar34 = piVar33;\n                bVar10 = bVar7;\njoined_r0x0001f08c:\n                while (bVar7 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar7) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar7 = *(byte *)(piVar35 + 3);\n                }\n                puVar20 = (undefined4 *)puVar16[1];\n                if (puVar20 != (undefined4 *)0x0) goto LAB_0001e974;\n                bVar11 = *(byte *)(puVar16 + 3);\n                piVar34 = piVar33;\n                bVar7 = bVar10;\njoined_r0x0001ef80:\n                while (bVar10 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar10) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar10 = *(byte *)(piVar35 + 3);\n                }\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 != (undefined4 *)0x0) goto LAB_0001e8cc;\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              while (bVar10 != bVar7) {\n                piVar34 = (int *)*piVar33;\n                piVar33 = (int *)piVar33[1];\n                if (bVar10 < bVar7) {\n                  piVar33 = piVar34;\n                }\n                if (piVar33 == (int *)0x0) {\n                  iVar9 = piVar23[5];\n                  goto LAB_0001e868;\n                }\n                bVar7 = *(byte *)(piVar33 + 3);\n              }\n            }\nLAB_0001e884:\n            if ((iVar8 != 0) &&\n               (iVar9 = piVar23[5] - *(int *)(iVar4 + 0x14), iVar9 < *(int *)(iVar4 + 0x1c))) {\n              *(int *)(iVar4 + 0x1c) = iVar9;\n            }\n            iVar4 = *(int *)(iVar4 + 0x10);\n          } while (iVar4 != 0);\n          piVar23 = (int *)piVar23[3];\n        }\n        else {\nLAB_0001dfb4:\n          piVar23 = (int *)piVar23[3];\n        }\n      } while (piVar23 != (int *)0x0);\n      if (iVar31 == 1) {\n        piVar23 = (int *)param_1[0xc];\n        goto LAB_000206c8;\n      }\n    }\n  }\nLAB_0001dfc8:\n  if (pbVar29 == (byte *)0x0) {\n    puVar16 = param_1 + 0x4f;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) goto LAB_0001dff8;\nLAB_0001f81c:\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((*piVar23 != 0) && (uVar17 = uVar5, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar14 == uVar5) {\n          uVar17 = uVar14;\n          uVar24 = uVar21;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar17 = 0xffffffff;\n            uVar24 = uVar21;\n          }\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  else {\n    puVar16 = auStack_52c;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) {\nLAB_0001dff8:\n      puVar20 = (undefined4 *)*puVar27;\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar20 = (undefined4 *)puVar27[1];\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar16[*(byte *)(puVar27 + 3)] = puVar27[2];\n      if (pbVar29 == (byte *)0x0) goto LAB_0001f81c;\n    }\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar12 = (uint)pbVar29[uVar5];\n      iVar8 = puVar16[uVar12];\n      *piVar23 = iVar8;\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((iVar8 != 0) && (uVar17 = uVar12, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar12 == uVar14) {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else if ((uVar12 != uVar5) || (uVar17 = uVar14, uVar14 != uVar21)) {\n          uVar17 = 0xffffffff;\n          uVar24 = uVar21;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  param_1[0x152] = uVar17;\n  param_1[0x153] = uVar24;\n  if (iVar31 != 1) goto LAB_0001e6f8;\n  uVar21 = param_1[4];\n  uVar14 = param_1[0xd];\n  if (uVar21 - param_1[3] < uVar14) {\n    _obstack_newchunk(param_1);\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) goto LAB_000209a8;\n  }\n  else {\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) {\nLAB_000209a8:\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n  }\n  uVar5 = iVar31 + param_1[6] & ~param_1[6];\n  param_1[3] = uVar5;\n  if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n    param_1[3] = uVar21;\n    uVar5 = uVar21;\n  }\n  piVar23 = (int *)param_1[0xc];\n  param_1[2] = uVar5;\n  param_1[0x14f] = iVar8;\n  if (-1 < (int)(uVar14 - 1)) {\n    *(undefined1 *)(iVar8 + (uVar14 - 1)) = *(undefined1 *)(piVar23[1] + 0xc);\n    piVar23 = (int *)piVar23[3];\n    for (iVar31 = uVar14 - 2; iVar31 != -1; iVar31 = iVar31 + -1) {\n      *(undefined1 *)(param_1[0x14f] + iVar31) = *(undefined1 *)(piVar23[1] + 0xc);\n      piVar23 = (int *)piVar23[3];\n    }\n    uVar14 = param_1[0xd];\n  }\n  bVar1 = (int)uVar14 < 2;\n  if (!bVar1) {\n    uVar21 = param_1[4];\n    iVar31 = param_1[3];\n    uVar5 = (uVar14 - 1) * 4;\n    if (uVar21 - iVar31 < uVar5) {\n      _obstack_newchunk(param_1,uVar5);\n      uVar14 = param_1[0xd];\n      iVar31 = param_1[3];\n      uVar21 = param_1[4];\n      bVar1 = (int)uVar14 < 2;\n    }\n    piVar33 = (int *)param_1[2];\n    piVar23 = (int *)(iVar31 + uVar5);\n    param_1[3] = piVar23;\n    if (piVar23 == piVar33) {\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n    uVar5 = (int)piVar23 + param_1[6] & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    param_1[2] = uVar5;\n    param_1[0x150] = piVar33;\n    piVar23 = *(int **)(param_1[0xc] + 0xc);\n    if (!bVar1) {\n      iVar31 = 0;\n      do {\n        piVar34 = piVar23 + 6;\n        piVar23 = (int *)piVar23[3];\n        iVar31 = iVar31 + 1;\n        *piVar33 = *piVar34;\n        uVar14 = param_1[0xd];\n        piVar33 = piVar33 + 1;\n      } while (iVar31 < (int)(uVar14 - 1));\n    }\n    bVar7 = *(byte *)(param_1[0x14f] + uVar14 + -2);\n    if (pbVar29 != (byte *)0x0) {\n      bVar7 = pbVar29[bVar7];\n    }\n    *(byte *)(param_1 + 0x154) = bVar7;\n  }\nLAB_0001e6f8:\n  if (pbVar29 != (byte *)0x0) {\n    pbVar13 = pbVar29 + 0x100;\n    piVar33 = param_1 + 0xf;\n    do {\n      bVar7 = *pbVar29;\n      piVar23 = (int *)((int)piVar33 + 1);\n      pbVar29 = pbVar29 + 1;\n      *(undefined1 *)piVar33 = *(undefined1 *)((int)puVar30 + (uint)bVar7);\n      piVar33 = piVar23;\n    } while (pbVar13 != pbVar29);\n  }\n  if (local_2c == *(int *)puVar2) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n                    /* WARNING: Could not recover jumptable at 0x000209d4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)piVar23[0x155])();\n  return;\n}" primitive_type (function_declarator "kwsprep(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  byte bVar7;\n  undefined1 *puVar6;\n  int iVar8;\n  undefined4 extraout_v1;\n  int extraout_v1_00;\n  undefined4 extraout_v1_01;\n  int extraout_v1_02;\n  undefined4 extraout_v1_03;\n  int extraout_v1_04;\n  undefined4 extraout_v1_05;\n  int extraout_v1_06;\n  undefined4 extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 extraout_v1_09;\n  int extraout_v1_10;\n  undefined4 extraout_v1_11;\n  int extraout_v1_12;\n  undefined4 extraout_v1_13;\n  int extraout_v1_14;\n  undefined4 extraout_v1_15;\n  int extraout_v1_16;\n  undefined4 extraout_v1_17;\n  int extraout_v1_18;\n  undefined4 extraout_v1_19;\n  int extraout_v1_20;\n  undefined4 extraout_v1_21;\n  int extraout_v1_22;\n  undefined4 extraout_v1_23;\n  int extraout_v1_24;\n  undefined4 extraout_v1_25;\n  int extraout_v1_26;\n  undefined4 extraout_v1_27;\n  int extraout_v1_28;\n  undefined4 extraout_v1_29;\n  int extraout_v1_30;\n  int iVar9;\n  byte bVar10;\n  byte bVar11;\n  uint uVar12;\n  byte *pbVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  undefined4 uVar22;\n  int *piVar23;\n  uint uVar24;\n  int **ppiVar25;\n  undefined4 *puVar26;\n  undefined4 *puVar27;\n  undefined4 *puVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int *piVar33;\n  int *piVar34;\n  int *piVar35;\n  int *piVar36;\n  undefined4 *local_534;\n  int *local_530;\n  undefined4 auStack_52c [256];\n  undefined4 auStack_12c [64];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = (byte *)param_1[0x151];\n  local_2c = *(int *)PTR___stack_chk_guard_000564b4;\n  puVar30 = param_1 + 0xf;\n  if (pbVar29 != (byte *)0x0) {\n    puVar30 = auStack_12c;\n  }\n  iVar31 = param_1[0xb];\n  if (iVar31 == 1) {\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\n      ppiVar25 = &local_530;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          piVar33[3] = (int)local_530;\n        }\n        piVar23 = (int *)piVar23[3];\n      } while (piVar23 != (int *)0x0);\n    }\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    if (uVar21 - param_1[3] < uVar14) {\n      _obstack_newchunk(param_1);\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      uVar21 = param_1[4];\n      uVar14 = param_1[0xd];\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) goto LAB_00020968;\n    }\n    else {\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) {\nLAB_00020968:\n        *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n      }\n    }\n    uVar5 = (uint)(puVar6 + param_1[6]) & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    iVar8 = param_1[0xc];\n    param_1[2] = uVar5;\n    param_1[0x14f] = puVar18;\n    if (0 < (int)uVar14) {\n      *puVar18 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n      iVar8 = *(int *)(iVar8 + 0xc);\n      if (1 < (int)param_1[0xd]) {\n        iVar4 = 1;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x14f] + iVar4);\n          iVar4 = iVar4 + 1;\n          *puVar6 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n          iVar8 = *(int *)(iVar8 + 0xc);\n        } while (iVar4 < (int)param_1[0xd]);\n      }\n    }\n    puVar20 = (undefined4 *)kwsalloc(param_1[0x151]);\n    uVar19 = param_1[0xd];\n    uVar15 = param_1[0x14f];\n    puVar20[0x155] = PTR_LAB_00056238 + -0x47f8;\n    kwsincr(puVar20,uVar15,uVar19);\n    _obstack_free(param_1,0);\n    puVar27 = puVar20;\n    puVar16 = param_1;\n    do {\n      puVar32 = puVar16;\n      puVar28 = puVar27;\n      puVar27 = puVar28 + 4;\n      uVar22 = puVar28[1];\n      uVar19 = puVar28[2];\n      uVar15 = puVar28[3];\n      *puVar32 = *puVar28;\n      puVar32[1] = uVar22;\n      puVar32[2] = uVar19;\n      puVar32[3] = uVar15;\n      puVar3 = PTR_free_000564c0;\n      puVar16 = puVar32 + 4;\n    } while (puVar27 != puVar20 + 0x154);\n    uVar15 = puVar28[5];\n    puVar32[4] = *puVar27;\n    puVar32[5] = uVar15;\n    (*(code *)puVar3)(puVar20);\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (iVar8 = piVar23[3]; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0xc)) {\n      while( true ) {\n        iVar9 = *(int *)(*(int *)(iVar8 + 8) + 0x1c);\n        iVar4 = *(int *)(iVar8 + 0x1c);\n        if (iVar9 < *(int *)(iVar8 + 0x1c)) {\n          *(int *)(iVar8 + 0x1c) = iVar9;\n          iVar4 = iVar9;\n        }\n        if (*(int *)(iVar8 + 0x18) <= iVar4) break;\n        *(int *)(iVar8 + 0x18) = iVar4;\n        iVar8 = *(int *)(iVar8 + 0xc);\n        if (iVar8 == 0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\nLAB_0001d27c:\n      ppiVar25 = &local_530;\n      local_530 = piVar23;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  piVar34 = local_530;\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                    piVar34 = local_530;\n                  }\n                  local_530 = (int *)piVar33[2];\n                  piVar34[3] = (int)local_530;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = piVar23[5];\n          piVar33[3] = (int)local_530;\n          if (puVar27 != (undefined4 *)0x0) {\n            puVar16 = (undefined4 *)*puVar27;\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1,puVar30);\n                    iVar8 = extraout_v1_00;\n                    if (extraout_v1_00 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_00;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_01,puVar30);\n                    iVar8 = extraout_v1_02;\n                    if (extraout_v1_02 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_02;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_03,puVar30);\n                    iVar8 = extraout_v1_04;\n                    if (extraout_v1_04 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_04;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_05,puVar30);\n                    iVar8 = extraout_v1_06;\n                    if (extraout_v1_06 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_06;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n        
(translation_unit "/* WARNING: Type propagation algorithm not settling */\n\nvoid kwsprep(kwset_t kwset)\n\n{\n  bool bVar1;\n  tree **pptVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined3 extraout_var_01;\n  undefined3 extraout_var_02;\n  undefined3 extraout_var_03;\n  undefined3 extraout_var_04;\n  undefined3 extraout_var_05;\n  undefined3 extraout_var_06;\n  undefined3 extraout_var_07;\n  undefined3 extraout_var_08;\n  undefined3 extraout_var_09;\n  undefined3 extraout_var_10;\n  undefined3 extraout_var_11;\n  undefined3 extraout_var_12;\n  undefined3 extraout_var_13;\n  undefined3 extraout_var_14;\n  undefined3 extraout_var_15;\n  undefined3 extraout_var_16;\n  undefined3 extraout_var_17;\n  undefined3 extraout_var_18;\n  undefined3 extraout_var_19;\n  undefined3 extraout_var_20;\n  undefined3 extraout_var_21;\n  undefined3 extraout_var_22;\n  undefined3 extraout_var_23;\n  undefined3 extraout_var_24;\n  undefined3 extraout_var_25;\n  undefined3 extraout_var_26;\n  undefined3 extraout_var_27;\n  undefined3 extraout_var_28;\n  undefined3 extraout_var_29;\n  undefined3 extraout_var_30;\n  undefined3 extraout_var_31;\n  undefined3 extraout_var_32;\n  undefined3 extraout_var_33;\n  undefined3 extraout_var_34;\n  undefined3 extraout_var_35;\n  undefined3 extraout_var_36;\n  undefined3 extraout_var_37;\n  undefined3 extraout_var_38;\n  undefined3 extraout_var_39;\n  undefined3 extraout_var_40;\n  undefined3 extraout_var_41;\n  undefined3 extraout_var_42;\n  undefined3 extraout_var_43;\n  undefined3 extraout_var_44;\n  undefined3 extraout_var_45;\n  undefined3 extraout_var_46;\n  undefined3 extraout_var_47;\n  undefined3 extraout_var_48;\n  undefined3 extraout_var_49;\n  int iVar5;\n  trie *ptVar6;\n  uint uVar7;\n  ptrdiff_t pVar8;\n  _Bool _Var14;\n  tree *ptVar9;\n  char *pcVar10;\n  ptrdiff_t *ppVar11;\n  byte bVar15;\n  uchar *puVar12;\n  kwset_t kwset_00;\n  anon_union_4_2_94730108_for_temp aVar13;\n  trie *ptVar16;\n  int iVar17;\n  tree *ptVar18;\n  char *pcVar19;\n  ptrdiff_t *ppVar20;\n  kwset_t pkVar21;\n  kwset_t pkVar22;\n  int iVar23;\n  byte bVar25;\n  byte bVar26;\n  _obstack_chunk *p_Var24;\n  uint uVar27;\n  byte *pbVar28;\n  uint uVar29;\n  kwset_t pkVar30;\n  kwset_t pkVar31;\n  tree *ptVar32;\n  uint uVar33;\n  uint uVar34;\n  uchar *puVar35;\n  tree *ptVar36;\n  char *pcVar37;\n  trie *ptVar38;\n  uint uVar39;\n  tree *ptVar40;\n  tree *ptVar41;\n  trie **pptVar42;\n  byte *pbVar43;\n  uchar *delta;\n  int iVar44;\n  size_t sVar45;\n  tree *ptVar46;\n  tree *ptVar47;\n  tree *ptStack_534;\n  trie *last;\n  trie *nextbuf [256];\n  uchar deltabuf [256];\n  \n  puVar3 = PTR___stack_chk_guard_000564b4;\n  pbVar43 = (byte *)kwset->trans;\n  iVar5 = *(int *)PTR___stack_chk_guard_000564b4;\n  delta = kwset->delta;\n  if (pbVar43 != (byte *)0x0) {\n    delta = deltabuf;\n  }\n  iVar44 = kwset->words;\n  if (iVar44 == 1) {\n    ptVar38 = kwset->trie;\n    last = ptVar38;\n    if (ptVar38 != (trie *)0x0) {\n      do {\n        ptVar40 = ptVar38->links;\n        if (ptVar40 != (tree *)0x0) {\n          ptVar32 = ptVar40->llink;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              ptVar6 = last;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n              }\n              last = ptVar36->trie;\n              ptVar6->next = last;\n            }\n            ptVar6 = ptVar32->trie;\n            last->next = ptVar6;\n            last = ptVar6;\n          }\n          ptVar32 = ptVar40->rlink;\n          ptVar6 = last;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar6 = ptVar41->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 == (tree *)0x0) {\n                ptVar6 = ptVar36->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              else {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n                last = ptVar36->trie;\n                ptVar6->next = last;\n              }\n            }\n            ptVar6 = ptVar32->trie;\n            last->next = ptVar6;\n          }\n          last = ptVar40->trie;\n          ptVar6->next = last;\n        }\n        ptVar38 = ptVar38->next;\n      } while (ptVar38 != (trie *)0x0);\n    }\n    pcVar37 = (kwset->obstack).chunk_limit;\n    pcVar10 = (kwset->obstack).next_free;\n    uVar29 = kwset->mind;\n    if ((uint)((int)pcVar37 - (int)pcVar10) < uVar29) {\n      _obstack_newchunk(&kwset->obstack,uVar29);\n      puVar35 = (uchar *)(kwset->obstack).object_base;\n      puVar12 = (uchar *)((kwset->obstack).next_free + uVar29);\n      pcVar37 = (kwset->obstack).chunk_limit;\n      uVar29 = kwset->mind;\n      (kwset->obstack).next_free = (char *)puVar12;\n      if (puVar12 == puVar35) goto LAB_00020968;\n    }\n    else {\n      puVar35 = (uchar *)(kwset->obstack).object_base;\n      puVar12 = (uchar *)(pcVar10 + uVar29);\n      (kwset->obstack).next_free = (char *)puVar12;\n      if (puVar12 == puVar35) {\nLAB_00020968:\n        (kwset->obstack).field_0x28 = (kwset->obstack).field_0x28 & 0xbf | 0x40;\n      }\n    }\n    uVar34 = (kwset->obstack).alignment_mask;\n    p_Var24 = (kwset->obstack).chunk;\n    pcVar10 = (char *)((uint)(puVar12 + uVar34) & ~uVar34);\n    (kwset->obstack).next_free = pcVar10;\n    if ((uint)((int)pcVar37 - (int)p_Var24) < (uint)((int)pcVar10 - (int)p_Var24)) {\n      (kwset->obstack).next_free = pcVar37;\n      pcVar10 = pcVar37;\n    }\n    ptVar38 = kwset->trie;\n    (kwset->obstack).object_base = pcVar10;\n    kwset->target = (char *)puVar35;\n    if (0 < (int)uVar29) {\n      *puVar35 = ptVar38->links->label;\n      ptVar38 = ptVar38->next;\n      if (1 < kwset->mind) {\n        iVar17 = 1;\n        do {\n          puVar12 = (uchar *)(kwset->target + iVar17);\n          iVar17 = iVar17 + 1;\n          *puVar12 = ptVar38->links->label;\n          ptVar38 = ptVar38->next;\n        } while (iVar17 < kwset->mind);\n      }\n    }\n    kwset_00 = kwsalloc(kwset->trans);\n    pVar8 = kwset->mind;\n    pcVar10 = kwset->target;\n    kwset_00->kwsexec =\n         (_func_ptrdiff_t_kwset_t_char_ptr_ptrdiff_t_kwsmatch_ptr__Bool *)\n         (PTR_LAB_00056238 + -0x47f8);\n    kwsincr(kwset_00,pcVar10,pVar8);\n    _obstack_free(&kwset->obstack,(void *)0x0);\n    pkVar22 = kwset_00;\n    pkVar31 = kwset;\n    do {\n      pkVar30 = pkVar31;\n      pkVar21 = pkVar22;\n      pkVar22 = (kwset_t)&(pkVar21->obstack).chunk_limit;\n      pkVar31 = (kwset_t)&(pkVar30->obstack).chunk_limit;\n      p_Var24 = (pkVar21->obstack).chunk;\n      pcVar37 = (pkVar21->obstack).object_base;\n      pcVar10 = (pkVar21->obstack).next_free;\n      (pkVar30->obstack).chunk_size = (pkVar21->obstack).chunk_size;\n      (pkVar30->obstack).chunk = p_Var24;\n      (pkVar30->obstack).object_base = pcVar37;\n      (pkVar30->obstack).next_free = pcVar10;\n      puVar4 = PTR_free_000564c0;\n    } while (pkVar22 != (kwset_t)&kwset_00->gc2);\n    aVar13 = (pkVar21->obstack).temp;\n    *(char **)pkVar31 = *(char **)pkVar22;\n    (pkVar30->obstack).temp = aVar13;\n    (*(code *)puVar4)(kwset_00);\n    iVar17 = 0xff;\n    if (kwset->mind < 0x100) {\n      iVar17 = kwset->mind;\n    }\n    (*(code *)PTR_memset_000563f4)(delta,iVar17,0x100);\n    ptVar38 = kwset->trie;\n    last = ptVar38;\n    if (ptVar38 != (trie *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (ptVar38 = ptVar38->next; ptVar38 != (trie *)0x0; ptVar38 = ptVar38->next) {\n      while( true ) {\n        iVar23 = ptVar38->parent->maxshift;\n        iVar17 = ptVar38->maxshift;\n        if (iVar23 < ptVar38->maxshift) {\n          ptVar38->maxshift = iVar23;\n          iVar17 = iVar23;\n        }\n        if (ptVar38->shift <= iVar17) break;\n        ptVar38->shift = iVar17;\n        ptVar38 = ptVar38->next;\n        if (ptVar38 == (trie *)0x0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar17 = 0xff;\n    if (kwset->mind < 0x100) {\n      iVar17 = kwset->mind;\n    }\n    (*(code *)PTR_memset_000563f4)(delta,iVar17,0x100);\n    ptVar38 = kwset->trie;\n    last = ptVar38;\n    if (ptVar38 != (trie *)0x0) {\nLAB_0001d27c:\n      pptVar42 = &last;\n      last = ptVar38;\n      do {\n        ptVar40 = ptVar38->links;\n        if (ptVar40 != (tree *)0x0) {\n          ptVar32 = ptVar40->llink;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              ptVar6 = last;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n              }\n              last = ptVar36->trie;\n              ptVar6->next = last;\n            }\n            ptVar6 = ptVar32->trie;\n            last->next = ptVar6;\n            last = ptVar6;\n          }\n          ptVar32 = ptVar40->rlink;\n          ptVar6 = last;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar6 = ptVar41->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 == (tree *)0x0) {\n                ptVar6 = ptVar36->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              else {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n                last = ptVar36->trie;\n                ptVar6->next = last;\n              }\n            }\n            ptVar6 = ptVar32->trie;\n            last->next = ptVar6;\n          }\n          last = ptVar40->trie;\n          ptVar40 = ptVar38->links;\n          iVar17 = ptVar38->depth;\n          ptVar6->next = last;\n          if (ptVar40 != (tree *)0x0) {\n            ptVar32 = ptVar40->llink;\n            if (ptVar32 != (tree *)0x0) {\n              ptVar36 = ptVar32->llink;\n              if (ptVar36 != (tree *)0x0) {\n                ptVar41 = ptVar36->llink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                ptVar41 = ptVar36->rlink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                if (iVar17 < (int)(uint)delta[ptVar36->label]) {\n                  delta[ptVar36->label] = (byte)iVar17;\n                }\n              }\n              ptVar36 = ptVar32->rlink;\n              if (ptVar36 != (tree *)0x0) {\n                ptVar41 = ptVar36->llink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                ptVar41 = ptVar36->rlink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                if (iVar17 < (int)(uint)delta[ptVar36->label]) {\n                  delta[ptVar36->label] = (byte)iVar17;\n                }\n              }\n              if (iVar17 < (int)(uint)delta[ptVar32->label]) {\n                delta[ptVar32->label] = (byte)iVar17;\n              }\n            }\n            ptVar32 = ptVar40->rlink;\n            if (ptVar32 != (tree *)0x0) {\n              ptVar36 = ptVar32->llink;\n              if (ptVar36 != (tree *)0x0) {\n                ptVar41 = ptVar36->llink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                ptVar41 = ptVar36->rlink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                if (iVar17 < (int)(uint)delta[ptVar36->label]) {\n                  delta[ptVar36->label] = (byte)iVar17;\n                }\n              }\n              ptVar36 = ptVar32->rlink;\n              if (ptVar36 != (tree *)0x0) {\n                ptVar41 = ptVar36->llink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                ptVar41 = ptVar36->rlink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                if (iVar17 < (int)(uint)delta[ptVar36->label]) {\n                  delta[ptVar36->label] = (byte)iVar17;\n                }\n              }\n              if (iVar17 < (int)(uint)delta[ptVar32->label]) {\n                delta[ptVar32->label] = (byte)iVar17;\n              }\n            }\n            if (iVar17 < (int)(uint)delta[ptVar40->label]) {\n              delta[ptVar40->label] = (byte)iVar17;\n            }\n            ptVar40 = ptVar38->links;\n          }\n        }\n        treefails(ptVar40,ptVar38->fail,kwset->trie,iVar44 == 1);\n        if (iVar44 == 1) {\n          pVar8 = kwset->mind;\n          ptVar6 = ptVar38->fail;\n          ptVar38->shift = pVar8;\n          ptVar38->maxshift = pVar8;\n          if (ptVar6 == (trie *)0x0) goto LAB_0001dfb4;\n          ptVar40 = ptVar38->links;\n          sVar45 = ptVar38->accepting;\n          do {\n            if (ptVar40 != (tree *)0x0) {\n              ptVar36 = ptVar40->llink;\n              ptVar32 = ptVar6->links;\n              if (ptVar36 == (tree *)0x0) {\n                ptVar36 = ptVar40->rlink;\n                if (ptVar36 == (tree *)0x0) {\n                  if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                  bVar15 = ptVar32->label;\n                }\n                else {\nLAB_0001e8cc:\n                  ptVar41 = ptVar36->llink;\n                  if (ptVar41 == (tree *)0x0) {\n                    ptVar41 = ptVar36->rlink;\n                    if (ptVar41 == (tree *)0x0) {\n                      if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                      bVar25 = ptVar32->label;\n                    }\n                    else {\nLAB_0001eaa0:\n                      ptVar46 = ptVar41->llink;\n                      if (ptVar46 != (tree *)0x0) {\n                        ptVar47 = ptVar46->llink;\n                        if (ptVar47 == (tree *)0x0) {\n                          ptVar47 = ptVar46->rlink;\n                          if (ptVar47 == (tree *)0x0) {\n                            if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                            bVar15 = ptVar32->label;\nLAB_0001fbdc:\n                            bVar25 = ptVar46->label;\n                            ptVar46 = ptVar32;\n                            bVar26 = bVar15;\njoined_r0x0001fbe0:\n                            while (bVar15 != bVar25) {\n                              ptVar47 = ptVar46->rlink;\n                              if (bVar25 < bVar15) {\n                                ptVar47 = ptVar46->llink;\n                              }\n                              if (ptVar47 == (tree *)0x0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\n                              ptVar46 = ptVar47;\n                              bVar15 = ptVar47->label;\n                            }\n                            ptVar46 = ptVar41->rlink;\n                            if (ptVar46 != (tree *)0x0) goto LAB_0001efdc;\n                            bVar15 = ptVar41->label;\n                            ptVar41 = ptVar32;\n                            bVar25 = bVar26;\n                            goto joined_r0x0001fb94;\n                          }\nLAB_0001f218:\n                          ptVar18 = ptVar47->llink;\n                          if (ptVar18 == (tree *)0x0) {\n                            ptStack_534 = ptVar47->rlink;\n                            if (ptStack_534 == (tree *)0x0) {\n                              if (ptVar32 != (tree *)0x0) {\n                                bVar15 = ptVar32->label;\n                                goto LAB_0001f8cc;\n                              }\n                            }\n                            else {\n                              _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                              if (CONCAT31(extraout_var_42,_Var14) != 0) goto LAB_0001f764;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptVar18->llink);\n                            if (((CONCAT31(extraout_var_32,_Var14) != 0) &&\n                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                CONCAT31(extraout_var_33,_Var14) != 0)) && (ptVar32 != (tree *)0x0))\n                            {\n                              bVar15 = ptVar32->label;\n                              bVar25 = bVar15;\n                              ptVar9 = ptVar32;\n                              while (ptVar18->label != bVar25) {\n                                pptVar2 = &ptVar9->llink;\n                                ptVar9 = ptVar9->rlink;\n                                if (ptVar18->label < bVar25) {\n                                  ptVar9 = *pptVar2;\n                                }\n                                if (ptVar9 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar9->label;\n                              }\n                              ptStack_534 = ptVar47->rlink;\n                              if (ptStack_534 != (tree *)0x0) {\n                                _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                                if (CONCAT31(extraout_var_49,_Var14) == 0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f764:\n                                _Var14 = hasevery(ptVar32,ptStack_534->rlink);\n                                if ((CONCAT31(extraout_var_43,_Var14) == 0) ||\n                                   (ptVar32 == (tree *)0x0)) goto LAB_0001e864;\n                                bVar15 = ptVar32->label;\n                                bVar25 = bVar15;\n                                ptVar18 = ptVar32;\n                                while (bVar25 != ptStack_534->label) {\n                                  pptVar2 = &ptVar18->llink;\n                                  ptVar18 = ptVar18->rlink;\n                                  if (ptStack_534->label < bVar25) {\n                                    ptVar18 = *pptVar2;\n                                  }\n                                  if (ptVar18 == (tree *)0x0) {\n                                    iVar17 = ptVar38->depth;\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar25 = ptVar18->label;\n                                }\n                              }\nLAB_0001f8cc:\n                              ptVar18 = ptVar32;\n                              bVar25 = bVar15;\n                              while (bVar25 != ptVar47->label) {\n                                pptVar2 = &ptVar18->llink;\n                                ptVar18 = ptVar18->rlink;\n                                if (ptVar47->label < bVar25) {\n                                  ptVar18 = *pptVar2;\n                                }\n                                if (ptVar18 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar18->label;\n                              }\n                              goto LAB_0001fbdc;\n                            }\n                          }\n                        }\n                        else {\n                          _Var14 = hasevery(ptVar32,ptVar47->llink);\n                          if (CONCAT31(extraout_var_08,_Var14) != 0) {\n                            ptVar18 = ptVar47->rlink;\n                            if (ptVar18 == (tree *)0x0) {\n                              if (ptVar32 != (tree *)0x0) {\n                                bVar15 = ptVar32->label;\n                                goto LAB_0001f9c8;\n                              }\n                            }\n                            else {\n                              _Var14 = hasevery(ptVar32,ptVar18->llink);\n                              if (((CONCAT31(extraout_var_09,_Var14) != 0) &&\n                                  (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                  CONCAT31(extraout_var_10,_Var14) != 0)) &&\n                                 (ptVar32 != (tree *)0x0)) {\n                                bVar15 = ptVar32->label;\n                                bVar25 = bVar15;\n                                ptVar9 = ptVar32;\n                                while (ptVar18->label != bVar25) {\n                                  pptVar2 = &ptVar9->llink;\n                                  ptVar9 = ptVar9->rlink;\n                                  if (ptVar18->label < bVar25) {\n                                    ptVar9 = *pptVar2;\n                                  }\n                                  if (ptVar9 == (tree *)0x0) {\n                                    iVar17 = ptVar38->depth;\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar25 = ptVar9->label;\n                                }\nLAB_0001f9c8:\n                                ptVar18 = ptVar32;\n                                bVar25 = bVar15;\n                                while (bVar25 != ptVar47->label) {\n                                  pptVar2 = &ptVar18->llink;\n                                  ptVar18 = ptVar18->rlink;\n                                  if (ptVar47->label < bVar25) {\n                                    ptVar18 = *pptVar2;\n                                  }\n                                  if (ptVar18 == (tree *)0x0) {\n                                    iVar17 = ptVar38->depth;\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar25 = ptVar18->label;\n                                }\n                                ptVar47 = ptVar46->rlink;\n                                if (ptVar47 != (tree *)0x0) goto LAB_0001f218;\n                                bVar25 = ptVar46->label;\n                                ptVar46 = ptVar32;\n                                bVar26 = bVar15;\n                                goto joined_r0x0001fbe0;\n                              }\n                            }\n                          }\n                        }\nLAB_0001e864:\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar46 = ptVar41->rlink;\n                      if (ptVar46 == (tree *)0x0) {\n                        if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                        bVar26 = ptVar32->label;\n                      }\n                      else {\nLAB_0001efdc:\n                        ptVar47 = ptVar46->llink;\n                        if (ptVar47 != (tree *)0x0) {\n                          ptVar18 = ptVar47->llink;\n                          if (ptVar18 == (tree *)0x0) {\n                            ptStack_534 = ptVar47->rlink;\n                            if (ptStack_534 == (tree *)0x0) {\n                              if (ptVar32 != (tree *)0x0) {\n                                bVar15 = ptVar32->label;\n                                goto LAB_0001f918;\n                              }\n                            }\n                            else {\n                              _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                              if (CONCAT31(extraout_var_38,_Var14) != 0) goto LAB_0001f654;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptVar18->llink);\n                            if (((CONCAT31(extraout_var_26,_Var14) != 0) &&\n                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                CONCAT31(extraout_var_27,_Var14) != 0)) && (ptVar32 != (tree *)0x0))\n                            {\n                              bVar15 = ptVar32->label;\n                              bVar25 = bVar15;\n                              ptVar9 = ptVar32;\n                              while (ptVar18->label != bVar25) {\n                                pptVar2 = &ptVar9->llink;\n                                ptVar9 = ptVar9->rlink;\n                                if (ptVar18->label < bVar25) {\n                                  ptVar9 = *pptVar2;\n                                }\n                                if (ptVar9 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar9->label;\n                              }\n                              ptStack_534 = ptVar47->rlink;\n                              if (ptStack_534 != (tree *)0x0) {\n                                _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                                if (CONCAT31(extraout_var_46,_Var14) == 0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f654:\n                                _Var14 = hasevery(ptVar32,ptStack_534->rlink);\n                                if ((CONCAT31(extraout_var_39,_Var14) == 0) ||\n                                   (ptVar32 == (tree *)0x0)) goto LAB_0001e864;\n                                bVar15 = ptVar32->label;\n                                bVar25 = bVar15;\n                                ptVar18 = ptVar32;\n                                while (bVar25 != ptStack_534->label) {\n                                  pptVar2 = &ptVar18->llink;\n                                  ptVar18 = ptVar18->rlink;\n                                  if (ptStack_534->label < bVar25) {\n                                    ptVar18 = *pptVar2;\n                                  }\n                                  if (ptVar18 == (tree *)0x0) {\n                                    iVar17 = ptVar38->depth;\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar25 = ptVar18->label;\n                                }\n                              }\nLAB_0001f918:\n                              ptVar18 = ptVar32;\n                              bVar25 = bVar15;\n                              while (bVar25 != ptVar47->label) {\n                                pptVar2 = &ptVar18->llink;\n                                ptVar18 = ptVar18->rlink;\n                                if (ptVar47->label < bVar25) {\n                                  ptVar18 = *pptVar2;\n                                }\n                                if (ptVar18 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar18->label;\n                              }\n                              ptVar47 = ptVar46->rlink;\n                              if (ptVar47 != (tree *)0x0) goto LAB_0001f3d4;\n                              bVar25 = ptVar46->label;\n                              ptVar46 = ptVar32;\n                              bVar26 = bVar15;\n                              goto joined_r0x00020768;\n                            }\n                          }\n                          goto LAB_0001e864;\n                        }\n                        ptVar47 = ptVar46->rlink;\n                        if (ptVar47 == (tree *)0x0) {\n                          if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                          bVar15 = ptVar32->label;\n                        }\n                        else {\nLAB_0001f3d4:\n                          ptVar18 = ptVar47->llink;\n                          if (ptVar18 == (tree *)0x0) {\n                            ptVar18 = ptVar47->rlink;\n                            if (ptVar18 == (tree *)0x0) {\n                              if (ptVar32 != (tree *)0x0) {\n                                bVar25 = ptVar32->label;\n                                goto LAB_00020814;\n                              }\n                            }\n                            else {\nLAB_0001fcfc:\n                              _Var14 = hasevery(ptVar32,ptVar18->llink);\n                              if (((CONCAT31(extraout_var_44,_Var14) != 0) &&\n                                  (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                  CONCAT31(extraout_var_45,_Var14) != 0)) &&\n                                 (ptVar32 != (tree *)0x0)) {\n                                bVar25 = ptVar32->label;\n                                bVar15 = bVar25;\n                                ptVar9 = ptVar32;\n                                while (ptVar18->label != bVar15) {\n                                  pptVar2 = &ptVar9->llink;\n                                  ptVar9 = ptVar9->rlink;\n                                  if (ptVar18->label < bVar15) {\n                                    ptVar9 = *pptVar2;\n                                  }\n                                  if (ptVar9 == (tree *)0x0) {\n                                    iVar17 = ptVar38->depth;\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar15 = ptVar9->label;\n                                }\nLAB_00020814:\n                                bVar26 = ptVar47->label;\n                                ptVar47 = ptVar32;\n                                bVar15 = bVar25;\n                                goto joined_r0x00020818;\n                              }\n                            }\n                            goto LAB_0001e864;\n                          }\n                          _Var14 = hasevery(ptVar32,ptVar18->llink);\n                          if (((CONCAT31(extraout_var_34,_Var14) == 0) ||\n                              (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                              CONCAT31(extraout_var_35,_Var14) == 0)) || (ptVar32 == (tree *)0x0))\n                          goto LAB_0001e864;\n                          bVar25 = ptVar32->label;\n                          bVar15 = bVar25;\n                          ptVar9 = ptVar32;\n                          while (bVar15 != ptVar18->label) {\n                            pptVar2 = &ptVar9->llink;\n                            ptVar9 = ptVar9->rlink;\n                            if (ptVar18->label < bVar15) {\n                              ptVar9 = *pptVar2;\n                            }\n                            if (ptVar9 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            bVar15 = ptVar9->label;\n                          }\n                          ptVar18 = ptVar47->rlink;\n                          if (ptVar18 != (tree *)0x0) goto LAB_0001fcfc;\n                          bVar26 = ptVar47->label;\n                          ptVar47 = ptVar32;\n                          bVar15 = bVar25;\njoined_r0x00020818:\n                          while (bVar25 != bVar26) {\n                            ptVar18 = ptVar47->rlink;\n                            if (bVar26 < bVar25) {\n                              ptVar18 = ptVar47->llink;\n                            }\n                            if (ptVar18 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            ptVar47 = ptVar18;\n                            bVar25 = ptVar18->label;\n                          }\n                        }\n                        bVar25 = ptVar46->label;\n                        ptVar46 = ptVar32;\n                        bVar26 = bVar15;\njoined_r0x00020768:\n                        while (bVar25 != bVar15) {\n                          ptVar47 = ptVar46->rlink;\n                          if (bVar25 < bVar15) {\n                            ptVar47 = ptVar46->llink;\n                          }\n                          if (ptVar47 == (tree *)0x0) {\n                            iVar17 = ptVar38->depth;\n                            goto LAB_0001e868;\n                          }\n                          ptVar46 = ptVar47;\n                          bVar15 = ptVar47->label;\n                        }\n                      }\n                      bVar15 = ptVar41->label;\n                      ptVar41 = ptVar32;\n                      bVar25 = bVar26;\njoined_r0x0001fb94:\n                      while (bVar15 != bVar26) {\n                        ptVar46 = ptVar41->rlink;\n                        if (bVar15 < bVar26) {\n                          ptVar46 = ptVar41->llink;\n                        }\n                        if (ptVar46 == (tree *)0x0) {\n                          iVar17 = ptVar38->depth;\n                          goto LAB_0001e868;\n                        }\n                        ptVar41 = ptVar46;\n                        bVar26 = ptVar46->label;\n                      }\n                    }\n                    bVar26 = ptVar36->label;\n                    ptVar36 = ptVar32;\n                    bVar15 = bVar25;\n                  }\n                  else {\n                    ptVar46 = ptVar41->llink;\n                    if (ptVar46 == (tree *)0x0) {\n                      ptVar46 = ptVar41->rlink;\n                      if (ptVar46 == (tree *)0x0) {\n                        if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                        bVar15 = ptVar32->label;\nLAB_0001f374:\n                        bVar26 = ptVar41->label;\n                        ptVar41 = ptVar32;\n                        bVar25 = bVar15;\n                        goto joined_r0x0001f378;\n                      }\nLAB_0001eb64:\n                      ptVar47 = ptVar46->llink;\n                      if (ptVar47 == (tree *)0x0) {\n                        ptVar47 = ptVar46->rlink;\n                        if (ptVar47 == (tree *)0x0) {\n                          if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                          bVar25 = ptVar32->label;\nLAB_0001fc3c:\n                          bVar26 = ptVar46->label;\n                          ptVar46 = ptVar32;\n                          bVar15 = bVar25;\njoined_r0x0001fc40:\n                          while (bVar25 != bVar26) {\n                            ptVar47 = ptVar46->rlink;\n                            if (bVar26 < bVar25) {\n                              ptVar47 = ptVar46->llink;\n                            }\n                            if (ptVar47 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            ptVar46 = ptVar47;\n                            bVar25 = ptVar47->label;\n                          }\n                          goto LAB_0001f374;\n                        }\nLAB_0001f180:\n                        ptVar18 = ptVar47->llink;\n                        if (ptVar18 == (tree *)0x0) {\n                          ptStack_534 = ptVar47->rlink;\n                          if (ptStack_534 == (tree *)0x0) {\n                            if (ptVar32 != (tree *)0x0) {\n                              bVar25 = ptVar32->label;\n                              goto LAB_0001f880;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                            if (CONCAT31(extraout_var_40,_Var14) != 0) goto LAB_0001f6dc;\n                          }\n                        }\n                        else {\n                          _Var14 = hasevery(ptVar32,ptVar18->llink);\n                          if (((CONCAT31(extraout_var_30,_Var14) != 0) &&\n                              (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                              CONCAT31(extraout_var_31,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {\n                            bVar25 = ptVar32->label;\n                            bVar15 = bVar25;\n                            ptVar9 = ptVar32;\n                            while (bVar15 != ptVar18->label) {\n                              pptVar2 = &ptVar9->llink;\n                              ptVar9 = ptVar9->rlink;\n                              if (ptVar18->label < bVar15) {\n                                ptVar9 = *pptVar2;\n                              }\n                              if (ptVar9 == (tree *)0x0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\n                              bVar15 = ptVar9->label;\n                            }\n                            ptStack_534 = ptVar47->rlink;\n                            if (ptStack_534 != (tree *)0x0) {\n                              _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                              if (CONCAT31(extraout_var_48,_Var14) == 0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\nLAB_0001f6dc:\n                              _Var14 = hasevery(ptVar32,ptStack_534->rlink);\n                              if ((CONCAT31(extraout_var_41,_Var14) == 0) ||\n                                 (ptVar32 == (tree *)0x0)) goto LAB_0001e864;\n                              bVar25 = ptVar32->label;\n                              bVar15 = bVar25;\n                              ptVar18 = ptVar32;\n                              while (ptStack_534->label != bVar15) {\n                                pptVar2 = &ptVar18->llink;\n                                ptVar18 = ptVar18->rlink;\n                                if (ptStack_534->label < bVar15) {\n                                  ptVar18 = *pptVar2;\n                                }\n                                if (ptVar18 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar15 = ptVar18->label;\n                              }\n                            }\nLAB_0001f880:\n                            ptVar18 = ptVar32;\n                            bVar15 = bVar25;\n                            while (ptVar47->label != bVar15) {\n                              pptVar2 = &ptVar18->llink;\n                              ptVar18 = ptVar18->rlink;\n                              if (ptVar47->label < bVar15) {\n                                ptVar18 = *pptVar2;\n                              }\n                              if (ptVar18 == (tree *)0x0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\n                              bVar15 = ptVar18->label;\n                            }\n                            goto LAB_0001fc3c;\n                          }\n                        }\n                      }\n                      else {\n                        _Var14 = hasevery(ptVar32,ptVar47->llink);\n                        if (CONCAT31(extraout_var_11,_Var14) != 0) {\n                          ptVar18 = ptVar47->rlink;\n                          if (ptVar18 == (tree *)0x0) {\n                            if (ptVar32 != (tree *)0x0) {\n                              bVar25 = ptVar32->label;\n                              goto LAB_0001faac;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptVar18->llink);\n                            if (((CONCAT31(extraout_var_12,_Var14) != 0) &&\n                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                CONCAT31(extraout_var_13,_Var14) != 0)) && (ptVar32 != (tree *)0x0))\n                            {\n                              bVar25 = ptVar32->label;\n                              bVar15 = bVar25;\n                              ptVar9 = ptVar32;\n                              while (bVar15 != ptVar18->label) {\n                                pptVar2 = &ptVar9->llink;\n                                ptVar9 = ptVar9->rlink;\n                                if (ptVar18->label < bVar15) {\n                                  ptVar9 = *pptVar2;\n                                }\n                                if (ptVar9 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar15 = ptVar9->label;\n                              }\nLAB_0001faac:\n                              if (ptVar47->label != bVar25) {\n                                FUN_0001facc();\n                                return;\n                              }\n                              ptVar47 = ptVar46->rlink;\n                              if (ptVar47 != (tree *)0x0) goto LAB_0001f180;\n                              bVar26 = ptVar46->label;\n                              ptVar46 = ptVar32;\n                              bVar15 = bVar25;\n                              goto joined_r0x0001fc40;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    ptVar47 = ptVar46->llink;\n                    if (ptVar47 == (tree *)0x0) {\n                      ptVar47 = ptVar46->rlink;\n                      if (ptVar47 == (tree *)0x0) {\n                        if (ptVar32 != (tree *)0x0) {\n                          bVar25 = ptVar32->label;\nLAB_0001f46c:\n                          bVar26 = ptVar46->label;\n                          ptVar46 = ptVar32;\n                          bVar15 = bVar25;\n                          goto joined_r0x0001f470;\n                        }\n                      }\n                      else {\nLAB_0001ed6c:\n                        _Var14 = hasevery(ptVar32,ptVar47->llink);\n                        if (CONCAT31(extraout_var_17,_Var14) != 0) {\n                          ptVar18 = ptVar47->rlink;\n                          if (ptVar18 == (tree *)0x0) {\n                            if (ptVar32 != (tree *)0x0) {\n                              bVar25 = ptVar32->label;\n                              goto LAB_0001fb44;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptVar18->llink);\n                            if (((CONCAT31(extraout_var_18,_Var14) != 0) &&\n                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                CONCAT31(extraout_var_19,_Var14) != 0)) && (ptVar32 != (tree *)0x0))\n                            {\n                              bVar25 = ptVar32->label;\n                              bVar15 = bVar25;\n                              ptVar9 = ptVar32;\n                              while (bVar15 != ptVar18->label) {\n                                pptVar2 = &ptVar9->llink;\n                                ptVar9 = ptVar9->rlink;\n                                if (ptVar18->label < bVar15) {\n                                  ptVar9 = *pptVar2;\n                                }\n                                if (ptVar9 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar15 = ptVar9->label;\n                              }\nLAB_0001fb44:\n                              ptVar18 = ptVar32;\n                              bVar15 = bVar25;\n                              while (ptVar47->label != bVar15) {\n                                pptVar2 = &ptVar18->llink;\n                                ptVar18 = ptVar18->rlink;\n                                if (ptVar47->label < bVar15) {\n                                  ptVar18 = *pptVar2;\n                                }\n                                if (ptVar18 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar15 = ptVar18->label;\n                              }\n                              goto LAB_0001f46c;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    _Var14 = hasevery(ptVar32,ptVar47->llink);\n                    if (((CONCAT31(extraout_var_02,_Var14) == 0) ||\n                        (_Var14 = hasevery(ptVar32,ptVar47->rlink),\n                        CONCAT31(extraout_var_03,_Var14) == 0)) || (ptVar32 == (tree *)0x0))\n                    goto LAB_0001e864;\n                    bVar25 = ptVar32->label;\n                    bVar15 = bVar25;\n                    ptVar18 = ptVar32;\n                    while (ptVar47->label != bVar15) {\n                      pptVar2 = &ptVar18->llink;\n                      ptVar18 = ptVar18->rlink;\n                      if (ptVar47->label < bVar15) {\n                        ptVar18 = *pptVar2;\n                      }\n                      if (ptVar18 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      bVar15 = ptVar18->label;\n                    }\n                    ptVar47 = ptVar46->rlink;\n                    if (ptVar47 != (tree *)0x0) goto LAB_0001ed6c;\n                    bVar26 = ptVar46->label;\n                    ptVar46 = ptVar32;\n                    bVar15 = bVar25;\njoined_r0x0001f470:\n                    while (bVar25 != bVar26) {\n                      ptVar47 = ptVar46->rlink;\n                      if (bVar26 < bVar25) {\n                        ptVar47 = ptVar46->llink;\n                      }\n                      if (ptVar47 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar46 = ptVar47;\n                      bVar25 = ptVar47->label;\n                    }\n                    ptVar46 = ptVar41->rlink;\n                    if (ptVar46 != (tree *)0x0) goto LAB_0001eb64;\n                    bVar26 = ptVar41->label;\n                    ptVar41 = ptVar32;\n                    bVar25 = bVar15;\njoined_r0x0001f378:\n                    while (bVar15 != bVar26) {\n                      ptVar46 = ptVar41->rlink;\n                      if (bVar26 < bVar15) {\n                        ptVar46 = ptVar41->llink;\n                      }\n                      if (ptVar46 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar41 = ptVar46;\n                      bVar15 = ptVar46->label;\n                    }\n                    ptVar41 = ptVar36->rlink;\n                    if (ptVar41 != (tree *)0x0) goto LAB_0001eaa0;\n                    bVar26 = ptVar36->label;\n                    ptVar36 = ptVar32;\n                    bVar15 = bVar25;\n                  }\n                  while (bVar26 != bVar25) {\n                    ptVar41 = ptVar36->rlink;\n                    if (bVar26 < bVar25) {\n                      ptVar41 = ptVar36->llink;\n                    }\n                    if (ptVar41 == (tree *)0x0) {\n                      iVar17 = ptVar38->depth;\n                      goto LAB_0001e868;\n                    }\n                    ptVar36 = ptVar41;\n                    bVar25 = ptVar41->label;\n                  }\n                }\n                bVar25 = ptVar40->label;\n              }\n              else {\n                ptVar41 = ptVar36->llink;\n                if (ptVar41 == (tree *)0x0) {\n                  ptVar41 = ptVar36->rlink;\n                  if (ptVar41 == (tree *)0x0) {\n                    if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                    bVar25 = ptVar32->label;\nLAB_0001ef7c:\n                    bVar26 = ptVar36->label;\n                    ptVar36 = ptVar32;\n                    bVar15 = bVar25;\n                    goto joined_r0x0001ef80;\n                  }\nLAB_0001e974:\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    ptVar47 = ptVar46->llink;\n                    if (ptVar47 == (tree *)0x0) {\n                      ptVar47 = ptVar46->rlink;\n                      if (ptVar47 == (tree *)0x0) {\n                        if (ptVar32 != (tree *)0x0) {\n                          bVar15 = ptVar32->label;\nLAB_0001f4cc:\n                          bVar25 = ptVar46->label;\n                          ptVar46 = ptVar32;\n                          bVar26 = bVar15;\n                          goto joined_r0x0001f4d0;\n                        }\n                      }\n                      else {\nLAB_0001ee1c:\n                        _Var14 = hasevery(ptVar32,ptVar47->llink);\n                        if (CONCAT31(extraout_var_20,_Var14) != 0) {\n                          ptVar18 = ptVar47->rlink;\n                          if (ptVar18 == (tree *)0x0) {\n                            if (ptVar32 != (tree *)0x0) {\n                              bVar15 = ptVar32->label;\n                              goto LAB_0001faf8;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptVar18->llink);\n                            if (((CONCAT31(extraout_var_21,_Var14) != 0) &&\n                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                CONCAT31(extraout_var_22,_Var14) != 0)) && (ptVar32 != (tree *)0x0))\n                            {\n                              bVar15 = ptVar32->label;\n                              bVar25 = bVar15;\n                              ptVar9 = ptVar32;\n                              while (bVar25 != ptVar18->label) {\n                                pptVar2 = &ptVar9->llink;\n                                ptVar9 = ptVar9->rlink;\n                                if (ptVar18->label < bVar25) {\n                                  ptVar9 = *pptVar2;\n                                }\n                                if (ptVar9 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar9->label;\n                              }\nLAB_0001faf8:\n                              ptVar18 = ptVar32;\n                              bVar25 = bVar15;\n                              while (ptVar47->label != bVar25) {\n                                pptVar2 = &ptVar18->llink;\n                                ptVar18 = ptVar18->rlink;\n                                if (ptVar47->label < bVar25) {\n                                  ptVar18 = *pptVar2;\n                                }\n                                if (ptVar18 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar18->label;\n                              }\n                              goto LAB_0001f4cc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    _Var14 = hasevery(ptVar32,ptVar47->llink);\n                    if (((CONCAT31(extraout_var_04,_Var14) == 0) ||\n                        (_Var14 = hasevery(ptVar32,ptVar47->rlink),\n                        CONCAT31(extraout_var_05,_Var14) == 0)) || (ptVar32 == (tree *)0x0))\n                    goto LAB_0001e864;\n                    bVar15 = ptVar32->label;\n                    bVar25 = bVar15;\n                    ptVar18 = ptVar32;\n                    while (bVar25 != ptVar47->label) {\n                      pptVar2 = &ptVar18->llink;\n                      ptVar18 = ptVar18->rlink;\n                      if (ptVar47->label < bVar25) {\n                        ptVar18 = *pptVar2;\n                      }\n                      if (ptVar18 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      bVar25 = ptVar18->label;\n                    }\n                    ptVar47 = ptVar46->rlink;\n                    if (ptVar47 != (tree *)0x0) goto LAB_0001ee1c;\n                    bVar25 = ptVar46->label;\n                    ptVar46 = ptVar32;\n                    bVar26 = bVar15;\njoined_r0x0001f4d0:\n                    while (bVar25 != bVar15) {\n                      ptVar47 = ptVar46->rlink;\n                      if (bVar25 < bVar15) {\n                        ptVar47 = ptVar46->llink;\n                      }\n                      if (ptVar47 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar46 = ptVar47;\n                      bVar15 = ptVar47->label;\n                    }\n                    ptVar46 = ptVar41->rlink;\n                    if (ptVar46 != (tree *)0x0) goto LAB_0001ec1c;\n                    bVar15 = ptVar41->label;\n                    ptVar41 = ptVar32;\n                    bVar25 = bVar26;\njoined_r0x0001f32c:\n                    while (bVar15 != bVar26) {\n                      ptVar46 = ptVar41->rlink;\n                      if (bVar15 < bVar26) {\n                        ptVar46 = ptVar41->llink;\n                      }\n                      if (ptVar46 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar41 = ptVar46;\n                      bVar26 = ptVar46->label;\n                    }\n                    goto LAB_0001ef7c;\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 == (tree *)0x0) {\n                    if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                    bVar26 = ptVar32->label;\nLAB_0001f328:\n                    bVar15 = ptVar41->label;\n                    ptVar41 = ptVar32;\n                    bVar25 = bVar26;\n                    goto joined_r0x0001f32c;\n                  }\nLAB_0001ec1c:\n                  ptVar47 = ptVar46->llink;\n                  if (ptVar47 != (tree *)0x0) {\n                    _Var14 = hasevery(ptVar32,ptVar47->llink);\n                    if (CONCAT31(extraout_var_14,_Var14) != 0) {\n                      ptVar18 = ptVar47->rlink;\n                      if (ptVar18 == (tree *)0x0) {\n                        if (ptVar32 != (tree *)0x0) {\n                          bVar15 = ptVar32->label;\n                          goto LAB_0001fa14;\n                        }\n                      }\n                      else {\n                        _Var14 = hasevery(ptVar32,ptVar18->llink);\n                        if (((CONCAT31(extraout_var_15,_Var14) != 0) &&\n                            (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                            CONCAT31(extraout_var_16,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {\n                          bVar15 = ptVar32->label;\n                          bVar25 = bVar15;\n                          ptVar9 = ptVar32;\n                          while (bVar25 != ptVar18->label) {\n                            pptVar2 = &ptVar9->llink;\n                            ptVar9 = ptVar9->rlink;\n                            if (ptVar18->label < bVar25) {\n                              ptVar9 = *pptVar2;\n                            }\n                            if (ptVar9 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            bVar25 = ptVar9->label;\n                          }\nLAB_0001fa14:\n                          ptVar18 = ptVar32;\n                          bVar25 = bVar15;\n                          while (bVar25 != ptVar47->label) {\n                            pptVar2 = &ptVar18->llink;\n                            ptVar18 = ptVar18->rlink;\n                            if (ptVar47->label < bVar25) {\n                              ptVar18 = *pptVar2;\n                            }\n                            if (ptVar18 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            bVar25 = ptVar18->label;\n                          }\n                          ptVar47 = ptVar46->rlink;\n                          if (ptVar47 != (tree *)0x0) goto LAB_0001f0e8;\n                          bVar25 = ptVar46->label;\n                          ptVar46 = ptVar32;\n                          bVar26 = bVar15;\n                          goto joined_r0x0001fc8c;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  ptVar47 = ptVar46->rlink;\n                  if (ptVar47 == (tree *)0x0) {\n                    if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                    bVar15 = ptVar32->label;\nLAB_0001fc88:\n                    bVar25 = ptVar46->label;\n                    ptVar46 = ptVar32;\n                    bVar26 = bVar15;\njoined_r0x0001fc8c:\n                    while (bVar25 != bVar15) {\n                      ptVar47 = ptVar46->rlink;\n                      if (bVar25 < bVar15) {\n                        ptVar47 = ptVar46->llink;\n                      }\n                      if (ptVar47 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar46 = ptVar47;\n                      bVar15 = ptVar47->label;\n                    }\n                    goto LAB_0001f328;\n                  }\nLAB_0001f0e8:\n                  ptVar18 = ptVar47->llink;\n                  if (ptVar18 == (tree *)0x0) {\n                    ptStack_534 = ptVar47->rlink;\n                    if (ptStack_534 == (tree *)0x0) {\n                      if (ptVar32 != (tree *)0x0) {\n                        bVar15 = ptVar32->label;\nLAB_0001f964:\n                        ptVar18 = ptVar32;\n                        bVar25 = bVar15;\n                        while (ptVar47->label != bVar25) {\n                          pptVar2 = &ptVar18->llink;\n                          ptVar18 = ptVar18->rlink;\n                          if (ptVar47->label < bVar25) {\n                            ptVar18 = *pptVar2;\n                          }\n                          if (ptVar18 == (tree *)0x0) {\n                            iVar17 = ptVar38->depth;\n                            goto LAB_0001e868;\n                          }\n                          bVar25 = ptVar18->label;\n                        }\n                        goto LAB_0001fc88;\n                      }\n                    }\n                    else {\n                      _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                      if (CONCAT31(extraout_var_36,_Var14) != 0) {\nLAB_0001f5cc:\n                        _Var14 = hasevery(ptVar32,ptStack_534->rlink);\n                        if ((CONCAT31(extraout_var_37,_Var14) != 0) && (ptVar32 != (tree *)0x0)) {\n                          bVar15 = ptVar32->label;\n                          bVar25 = bVar15;\n                          ptVar18 = ptVar32;\n                          while (ptStack_534->label != bVar25) {\n                            pptVar2 = &ptVar18->llink;\n                            ptVar18 = ptVar18->rlink;\n                            if (ptStack_534->label < bVar25) {\n                              ptVar18 = *pptVar2;\n                            }\n                            if (ptVar18 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            bVar25 = ptVar18->label;\n                          }\n                          goto LAB_0001f964;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  _Var14 = hasevery(ptVar32,ptVar18->llink);\n                  if (((CONCAT31(extraout_var_28,_Var14) == 0) ||\n                      (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                      CONCAT31(extraout_var_29,_Var14) == 0)) || (ptVar32 == (tree *)0x0))\n                  goto LAB_0001e864;\n                  bVar15 = ptVar32->label;\n                  bVar25 = bVar15;\n                  ptVar9 = ptVar32;\n                  while (bVar25 != ptVar18->label) {\n                    pptVar2 = &ptVar9->llink;\n                    ptVar9 = ptVar9->rlink;\n                    if (ptVar18->label < bVar25) {\n                      ptVar9 = *pptVar2;\n                    }\n                    if (ptVar9 == (tree *)0x0) {\n                      iVar17 = ptVar38->depth;\n                      goto LAB_0001e868;\n                    }\n                    bVar25 = ptVar9->label;\n                  }\n                  ptStack_534 = ptVar47->rlink;\n                  if (ptStack_534 == (tree *)0x0) goto LAB_0001f964;\n                  _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                  if (CONCAT31(extraout_var_47,_Var14) != 0) goto LAB_0001f5cc;\n                  iVar17 = ptVar38->depth;\nLAB_0001e868:\n                  iVar17 = iVar17 - ptVar6->depth;\n                  if (iVar17 < ptVar6->shift) {\n                    ptVar6->shift = iVar17;\n                  }\n                  goto LAB_0001e884;\n                }\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  _Var14 = hasevery(ptVar32,ptVar46->llink);\n                  if (CONCAT31(extraout_var,_Var14) != 0) {\n                    ptVar47 = ptVar46->rlink;\n                    if (ptVar47 == (tree *)0x0) {\n                      if (ptVar32 != (tree *)0x0) {\n                        bVar15 = ptVar32->label;\n                        goto LAB_0001ed20;\n                      }\n                    }\n                    else {\n                      _Var14 = hasevery(ptVar32,ptVar47->llink);\n                      if (((CONCAT31(extraout_var_00,_Var14) != 0) &&\n                          (_Var14 = hasevery(ptVar32,ptVar47->rlink),\n                          CONCAT31(extraout_var_01,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {\n                        bVar15 = ptVar32->label;\n                        bVar25 = bVar15;\n                        ptVar18 = ptVar32;\n                        while (bVar25 != ptVar47->label) {\n                          pptVar2 = &ptVar18->llink;\n                          ptVar18 = ptVar18->rlink;\n                          if (ptVar47->label < bVar25) {\n                            ptVar18 = *pptVar2;\n                          }\n                          if (ptVar18 == (tree *)0x0) goto LAB_0001e864;\n                          bVar25 = ptVar18->label;\n                        }\nLAB_0001ed20:\n                        ptVar47 = ptVar32;\n                        bVar25 = bVar15;\n                        while (ptVar46->label != bVar25) {\n                          pptVar2 = &ptVar47->llink;\n                          ptVar47 = ptVar47->rlink;\n                          if (ptVar46->label < bVar25) {\n                            ptVar47 = *pptVar2;\n                          }\n                          if (ptVar47 == (tree *)0x0) {\n                            iVar17 = ptVar38->depth;\n                            goto LAB_0001e868;\n                          }\n                          bVar25 = ptVar47->label;\n                        }\n                        ptVar46 = ptVar41->rlink;\n                        if (ptVar46 != (tree *)0x0) goto LAB_0001ea10;\n                        bVar26 = ptVar41->label;\n                        ptVar41 = ptVar32;\n                        bVar25 = bVar15;\n                        goto joined_r0x0001f08c;\n                      }\n                    }\n                  }\n                  goto LAB_0001e864;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                  bVar15 = ptVar32->label;\n                }\n                else {\nLAB_0001ea10:\n                  ptVar47 = ptVar46->llink;\n                  if (ptVar47 == (tree *)0x0) {\n                    ptVar47 = ptVar46->rlink;\n                    if (ptVar47 == (tree *)0x0) {\n                      if (ptVar32 != (tree *)0x0) {\n                        bVar25 = ptVar32->label;\nLAB_0001f52c:\n                        bVar26 = ptVar46->label;\n                        ptVar46 = ptVar32;\n                        bVar15 = bVar25;\n                        goto joined_r0x0001f530;\n                      }\n                    }\n                    else {\nLAB_0001eecc:\n                      _Var14 = hasevery(ptVar32,ptVar47->llink);\n                      if (CONCAT31(extraout_var_23,_Var14) != 0) {\n                        ptVar18 = ptVar47->rlink;\n                        if (ptVar18 == (tree *)0x0) {\n                          if (ptVar32 != (tree *)0x0) {\n                            bVar25 = ptVar32->label;\n                            goto LAB_0001fa60;\n                          }\n                        }\n                        else {\n                          _Var14 = hasevery(ptVar32,ptVar18->llink);\n                          if (((CONCAT31(extraout_var_24,_Var14) != 0) &&\n                              (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                              CONCAT31(extraout_var_25,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {\n                            bVar25 = ptVar32->label;\n                            bVar15 = bVar25;\n                            ptVar9 = ptVar32;\n                            while (ptVar18->label != bVar15) {\n                              pptVar2 = &ptVar9->llink;\n                              ptVar9 = ptVar9->rlink;\n                              if (ptVar18->label < bVar15) {\n                                ptVar9 = *pptVar2;\n                              }\n                              if (ptVar9 == (tree *)0x0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\n                              bVar15 = ptVar9->label;\n                            }\nLAB_0001fa60:\n                            ptVar18 = ptVar32;\n                            bVar15 = bVar25;\n                            while (ptVar47->label != bVar15) {\n                              pptVar2 = &ptVar18->llink;\n                              ptVar18 = ptVar18->rlink;\n                              if (ptVar47->label < bVar15) {\n                                ptVar18 = *pptVar2;\n                              }\n                              if (ptVar18 == (tree *)0x0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\n                              bVar15 = ptVar18->label;\n                            }\n                            goto LAB_0001f52c;\n                          }\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  _Var14 = hasevery(ptVar32,ptVar47->llink);\n                  if (((CONCAT31(extraout_var_06,_Var14) == 0) ||\n                      (_Var14 = hasevery(ptVar32,ptVar47->rlink),\n                      CONCAT31(extraout_var_07,_Var14) == 0)) || (ptVar32 == (tree *)0x0))\n                  goto LAB_0001e864;\n                  bVar25 = ptVar32->label;\n                  bVar15 = bVar25;\n                  ptVar18 = ptVar32;\n                  while (ptVar47->label != bVar15) {\n                    pptVar2 = &ptVar18->llink;\n                    ptVar18 = ptVar18->rlink;\n                    if (ptVar47->label < bVar15) {\n                      ptVar18 = *pptVar2;\n                    }\n                    if (ptVar18 == (tree *)0x0) {\n                      iVar17 = ptVar38->depth;\n                      goto LAB_0001e868;\n                    }\n                    bVar15 = ptVar18->label;\n                  }\n                  ptVar47 = ptVar46->rlink;\n                  if (ptVar47 != (tree *)0x0) goto LAB_0001eecc;\n                  bVar26 = ptVar46->label;\n                  ptVar46 = ptVar32;\n                  bVar15 = bVar25;\njoined_r0x0001f530:\n                  while (bVar25 != bVar26) {\n                    ptVar47 = ptVar46->rlink;\n                    if (bVar26 < bVar25) {\n                      ptVar47 = ptVar46->llink;\n                    }\n                    if (ptVar47 == (tree *)0x0) {\n                      iVar17 = ptVar38->depth;\n                      goto LAB_0001e868;\n                    }\n                    ptVar46 = ptVar47;\n                    bVar25 = ptVar47->label;\n                  }\n                }\n                bVar26 = ptVar41->label;\n                ptVar41 = ptVar32;\n                bVar25 = bVar15;\njoined_r0x0001f08c:\n                while (bVar15 != bVar26) {\n                  ptVar46 = ptVar41->rlink;\n                  if (bVar26 < bVar15) {\n                    ptVar46 = ptVar41->llink;\n                  }\n                  if (ptVar46 == (tree *)0x0) {\n                    iVar17 = ptVar38->depth;\n                    goto LAB_0001e868;\n                  }\n                  ptVar41 = ptVar46;\n                  bVar15 = ptVar46->label;\n                }\n                ptVar41 = ptVar36->rlink;\n                if (ptVar41 != (tree *)0x0) goto LAB_0001e974;\n                bVar26 = ptVar36->label;\n                ptVar36 = ptVar32;\n                bVar15 = bVar25;\njoined_r0x0001ef80:\n                while (bVar25 != bVar26) {\n                  ptVar41 = ptVar36->rlink;\n                  if (bVar26 < bVar25) {\n                    ptVar41 = ptVar36->llink;\n                  }\n                  if (ptVar41 == (tree *)0x0) {\n                    iVar17 = ptVar38->depth;\n                    goto LAB_0001e868;\n                  }\n                  ptVar36 = ptVar41;\n                  bVar25 = ptVar41->label;\n                }\n                ptVar36 = ptVar40->rlink;\n                if (ptVar36 != (tree *)0x0) goto LAB_0001e8cc;\n                bVar25 = ptVar40->label;\n              }\n              while (bVar25 != bVar15) {\n                pptVar2 = &ptVar32->llink;\n                ptVar32 = ptVar32->rlink;\n                if (bVar25 < bVar15) {\n                  ptVar32 = *pptVar2;\n                }\n                if (ptVar32 == (tree *)0x0) {\n                  iVar17 = ptVar38->depth;\n                  goto LAB_0001e868;\n                }\n                bVar15 = ptVar32->label;\n              }\n            }\nLAB_0001e884:\n            if ((sVar45 != 0) &&\n               (iVar17 = ptVar38->depth - ptVar6->depth, iVar17 < ptVar6->maxshift)) {\n              ptVar6->maxshift = iVar17;\n            }\n            ptVar6 = ptVar6->fail;\n          } while (ptVar6 != (trie *)0x0);\n          ptVar38 = ptVar38->next;\n        }\n        else {\nLAB_0001dfb4:\n          ptVar38 = ptVar38->next;\n        }\n      } while (ptVar38 != (trie *)0x0);\n      if (iVar44 == 1) {\n        ptVar38 = kwset->trie;\n        goto LAB_000206c8;\n      }\n    }\n  }\nLAB_0001dfc8:\n  if (pbVar43 == (byte *)0x0) {\n    pptVar42 = kwset->next;\n    (*(code *)PTR_memset_000563f4)(pptVar42,0,0x400);\n    ptVar40 = kwset->trie->links;\n    if (ptVar40 != (tree *)0x0) goto LAB_0001dff8;\nLAB_0001f81c:\n    ptVar38 = (trie *)kwset->next;\n    uVar7 = 0;\n    uVar29 = 0xfffffffe;\n    uVar34 = 0xffffffff;\n    do {\n      uVar33 = uVar29;\n      uVar39 = uVar34;\n      if ((*(trie **)ptVar38 != (trie *)0x0) && (uVar33 = uVar7, uVar39 = uVar7, -2 < (int)uVar29))\n      {\n        if (uVar29 == uVar7) {\n          uVar33 = uVar29;\n          uVar39 = uVar34;\n          if (uVar29 != uVar34) {\n            uVar39 = 0xffffffff;\n          }\n        }\n        else {\n          uVar33 = uVar29;\n          if (uVar29 != uVar34) {\n            uVar33 = 0xffffffff;\n            uVar39 = uVar34;\n          }\n        }\n      }\n      uVar7 = uVar7 + 1;\n      ptVar38 = (trie *)((int)ptVar38 + 4);\n      uVar29 = uVar33;\n      uVar34 = uVar39;\n    } while (uVar7 != 0x100);\n  }\n  else {\n    pptVar42 = nextbuf;\n    (*(code *)PTR_memset_000563f4)(pptVar42,0,0x400);\n    ptVar40 = kwset->trie->links;\n    if (ptVar40 != (tree *)0x0) {\nLAB_0001dff8:\n      ptVar32 = ptVar40->llink;\n      if (ptVar32 != (tree *)0x0) {\n        ptVar36 = ptVar32->llink;\n        if (ptVar36 != (tree *)0x0) {\n          ptVar41 = ptVar36->llink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          ptVar41 = ptVar36->rlink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          pptVar42[ptVar36->label] = ptVar36->trie;\n        }\n        ptVar36 = ptVar32->rlink;\n        if (ptVar36 != (tree *)0x0) {\n          ptVar41 = ptVar36->llink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          ptVar41 = ptVar36->rlink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          pptVar42[ptVar36->label] = ptVar36->trie;\n        }\n        pptVar42[ptVar32->label] = ptVar32->trie;\n      }\n      ptVar32 = ptVar40->rlink;\n      if (ptVar32 != (tree *)0x0) {\n        ptVar36 = ptVar32->llink;\n        if (ptVar36 != (tree *)0x0) {\n          ptVar41 = ptVar36->llink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          ptVar41 = ptVar36->rlink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          pptVar42[ptVar36->label] = ptVar36->trie;\n        }\n        ptVar36 = ptVar32->rlink;\n        if (ptVar36 != (tree *)0x0) {\n          ptVar41 = ptVar36->llink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          ptVar41 = ptVar36->rlink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          pptVar42[ptVar36->label] = ptVar36->trie;\n        }\n        pptVar42[ptVar32->label] = ptVar32->trie;\n      }\n      pptVar42[ptVar40->label] = ptVar40->trie;\n      if (pbVar43 == (byte *)0x0) goto LAB_0001f81c;\n    }\n    ptVar38 = (trie *)kwset->next;\n    uVar7 = 0;\n    uVar29 = 0xfffffffe;\n    uVar34 = 0xffffffff;\n    do {\n      uVar27 = (uint)pbVar43[uVar7];\n      ptVar6 = pptVar42[uVar27];\n      *(trie **)ptVar38 = ptVar6;\n      uVar33 = uVar29;\n      uVar39 = uVar34;\n      if ((ptVar6 != (trie *)0x0) && (uVar33 = uVar27, uVar39 = uVar7, -2 < (int)uVar29)) {\n        if (uVar27 == uVar29) {\n          uVar33 = uVar29;\n          if (uVar29 != uVar34) {\n            uVar39 = 0xffffffff;\n          }\n        }\n        else if ((uVar27 != uVar7) || (uVar33 = uVar29, uVar29 != uVar34)) {\n          uVar33 = 0xffffffff;\n          uVar39 = uVar34;\n        }\n      }\n      uVar7 = uVar7 + 1;\n      ptVar38 = (trie *)((int)ptVar38 + 4);\n      uVar29 = uVar33;\n      uVar34 = uVar39;\n    } while (uVar7 != 0x100);\n  }\n  kwset->gc1 = uVar33;\n  kwset->gc1help = uVar39;\n  if (iVar44 != 1) goto LAB_0001e6f8;\n  pcVar37 = (kwset->obstack).chunk_limit;\n  pcVar10 = (kwset->obstack).next_free;\n  uVar29 = kwset->mind;\n  if ((uint)((int)pcVar37 - (int)pcVar10) < uVar29) {\n    _obstack_newchunk(&kwset->obstack,uVar29);\n    pcVar19 = (kwset->obstack).object_base;\n    pcVar10 = (kwset->obstack).next_free + uVar29;\n    pcVar37 = (kwset->obstack).chunk_limit;\n    uVar29 = kwset->mind;\n    (kwset->obstack).next_free = pcVar10;\n    if (pcVar10 == pcVar19) goto LAB_000209a8;\n  }\n  else {\n    pcVar19 = (kwset->obstack).object_base;\n    pcVar10 = pcVar10 + uVar29;\n    (kwset->obstack).next_free = pcVar10;\n    if (pcVar10 == pcVar19) {\nLAB_000209a8:\n      (kwset->obstack).field_0x28 = (kwset->obstack).field_0x28 & 0xbf | 0x40;\n    }\n  }\n  uVar34 = (kwset->obstack).alignment_mask;\n  p_Var24 = (kwset->obstack).chunk;\n  pcVar10 = (char *)((uint)(pcVar10 + uVar34) & ~uVar34);\n  (kwset->obstack).next_free = pcVar10;\n  if ((uint)((int)pcVar37 - (int)p_Var24) < (uint)((int)pcVar10 - (int)p_Var24)) {\n    (kwset->obstack).next_free = pcVar37;\n    pcVar10 = pcVar37;\n  }\n  ptVar38 = kwset->trie;\n  (kwset->obstack).object_base = pcVar10;\n  kwset->target = pcVar19;\n  if (-1 < (int)(uVar29 - 1)) {\n    pcVar19[uVar29 - 1] = ptVar38->links->label;\n    ptVar38 = ptVar38->next;\n    for (iVar44 = uVar29 - 2; iVar44 != -1; iVar44 = iVar44 + -1) {\n      kwset->target[iVar44] = ptVar38->links->label;\n      ptVar38 = ptVar38->next;\n    }\n    uVar29 = kwset->mind;\n  }\n  bVar1 = (int)uVar29 < 2;\n  if (!bVar1) {\n    pcVar37 = (kwset->obstack).chunk_limit;\n    pcVar10 = (kwset->obstack).next_free;\n    uVar34 = (uVar29 - 1) * 4;\n    if ((uint)((int)pcVar37 - (int)pcVar10) < uVar34) {\n      _obstack_newchunk(&kwset->obstack,uVar34);\n      uVar29 = kwset->mind;\n      pcVar10 = (kwset->obstack).next_free;\n      pcVar37 = (kwset->obstack).chunk_limit;\n      bVar1 = (int)uVar29 < 2;\n    }\n    ppVar20 = (ptrdiff_t *)(kwset->obstack).object_base;\n    ppVar11 = (ptrdiff_t *)(pcVar10 + uVar34);\n    (kwset->obstack).next_free = (char *)ppVar11;\n    if (ppVar11 == ppVar20) {\n      (kwset->obstack).field_0x28 = (kwset->obstack).field_0x28 & 0xbf | 0x40;\n    }\n    uVar34 = (kwset->obstack).alignment_mask;\n    p_Var24 = (kwset->obstack).chunk;\n    pcVar10 = (char *)((int)ppVar11 + uVar34 & ~uVar34);\n    (kwset->obstack).next_free = pcVar10;\n    if ((uint)((int)pcVar37 - (int)p_Var24) < (uint)((int)pcVar10 - (int)p_Var24)) {\n      (kwset->obstack).next_free = pcVar37;\n      pcVar10 = pcVar37;\n    }\n    ptVar38 = kwset->trie;\n    (kwset->obstack).object_base = pcVar10;\n    kwset->shift = ppVar20;\n    ptVar38 = ptVar38->next;\n    if (!bVar1) {\n      iVar44 = 0;\n      do {\n        ppVar11 = &ptVar38->shift;\n        ptVar38 = ptVar38->next;\n        iVar44 = iVar44 + 1;\n        *ppVar20 = *ppVar11;\n        uVar29 = kwset->mind;\n        ppVar20 = ppVar20 + 1;\n      } while (iVar44 < (int)(uVar29 - 1));\n    }\n    bVar15 = kwset->target[uVar29 - 2];\n    if (pbVar43 != (byte *)0x0) {\n      bVar15 = pbVar43[bVar15];\n    }\n    kwset->gc2 = bVar15;\n  }\nLAB_0001e6f8:\n  if (pbVar43 != (byte *)0x0) {\n    pbVar28 = pbVar43 + 0x100;\n    ptVar6 = (trie *)kwset->delta;\n    do {\n      bVar15 = *pbVar43;\n      ptVar38 = (trie *)((int)&ptVar6->accepting + 1);\n      pbVar43 = pbVar43 + 1;\n      *(uchar *)&ptVar6->accepting = delta[bVar15];\n      ptVar6 = ptVar38;\n    } while (pbVar28 != pbVar43);\n  }\n  if (iVar5 == *(int *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n                    /* WARNING: Could not recover jumptable at 0x000209d4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)ptVar38[0x2a].depth)();\n  return;\n}\n\n" comment (function_definition "void kwsprep(kwset_t kwset)\n\n{\n  bool bVar1;\n  tree **pptVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined3 extraout_var_01;\n  undefined3 extraout_var_02;\n  undefined3 extraout_var_03;\n  undefined3 extraout_var_04;\n  undefined3 extraout_var_05;\n  undefined3 extraout_var_06;\n  undefined3 extraout_var_07;\n  undefined3 extraout_var_08;\n  undefined3 extraout_var_09;\n  undefined3 extraout_var_10;\n  undefined3 extraout_var_11;\n  undefined3 extraout_var_12;\n  undefined3 extraout_var_13;\n  undefined3 extraout_var_14;\n  undefined3 extraout_var_15;\n  undefined3 extraout_var_16;\n  undefined3 extraout_var_17;\n  undefined3 extraout_var_18;\n  undefined3 extraout_var_19;\n  undefined3 extraout_var_20;\n  undefined3 extraout_var_21;\n  undefined3 extraout_var_22;\n  undefined3 extraout_var_23;\n  undefined3 extraout_var_24;\n  undefined3 extraout_var_25;\n  undefined3 extraout_var_26;\n  undefined3 extraout_var_27;\n  undefined3 extraout_var_28;\n  undefined3 extraout_var_29;\n  undefined3 extraout_var_30;\n  undefined3 extraout_var_31;\n  undefined3 extraout_var_32;\n  undefined3 extraout_var_33;\n  undefined3 extraout_var_34;\n  undefined3 extraout_var_35;\n  undefined3 extraout_var_36;\n  undefined3 extraout_var_37;\n  undefined3 extraout_var_38;\n  undefined3 extraout_var_39;\n  undefined3 extraout_var_40;\n  undefined3 extraout_var_41;\n  undefined3 extraout_var_42;\n  undefined3 extraout_var_43;\n  undefined3 extraout_var_44;\n  undefined3 extraout_var_45;\n  undefined3 extraout_var_46;\n  undefined3 extraout_var_47;\n  undefined3 extraout_var_48;\n  undefined3 extraout_var_49;\n  int iVar5;\n  trie *ptVar6;\n  uint uVar7;\n  ptrdiff_t pVar8;\n  _Bool _Var14;\n  tree *ptVar9;\n  char *pcVar10;\n  ptrdiff_t *ppVar11;\n  byte bVar15;\n  uchar *puVar12;\n  kwset_t kwset_00;\n  anon_union_4_2_94730108_for_temp aVar13;\n  trie *ptVar16;\n  int iVar17;\n  tree *ptVar18;\n  char *pcVar19;\n  ptrdiff_t *ppVar20;\n  kwset_t pkVar21;\n  kwset_t pkVar22;\n  int iVar23;\n  byte bVar25;\n  byte bVar26;\n  _obstack_chunk *p_Var24;\n  uint uVar27;\n  byte *pbVar28;\n  uint uVar29;\n  kwset_t pkVar30;\n  kwset_t pkVar31;\n  tree *ptVar32;\n  uint uVar33;\n  uint uVar34;\n  uchar *puVar35;\n  tree *ptVar36;\n  char *pcVar37;\n  trie *ptVar38;\n  uint uVar39;\n  tree *ptVar40;\n  tree *ptVar41;\n  trie **pptVar42;\n  byte *pbVar43;\n  uchar *delta;\n  int iVar44;\n  size_t sVar45;\n  tree *ptVar46;\n  tree *ptVar47;\n  tree *ptStack_534;\n  trie *last;\n  trie *nextbuf [256];\n  uchar deltabuf [256];\n  \n  puVar3 = PTR___stack_chk_guard_000564b4;\n  pbVar43 = (byte *)kwset->trans;\n  iVar5 = *(int *)PTR___stack_chk_guard_000564b4;\n  delta = kwset->delta;\n  if (pbVar43 != (byte *)0x0) {\n    delta = deltabuf;\n  }\n  iVar44 = kwset->words;\n  if (iVar44 == 1) {\n    ptVar38 = kwset->trie;\n    last = ptVar38;\n    if (ptVar38 != (trie *)0x0) {\n      do {\n        ptVar40 = ptVar38->links;\n        if (ptVar40 != (tree *)0x0) {\n          ptVar32 = ptVar40->llink;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              ptVar6 = last;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n              }\n              last = ptVar36->trie;\n              ptVar6->next = last;\n            }\n            ptVar6 = ptVar32->trie;\n            last->next = ptVar6;\n            last = ptVar6;\n          }\n          ptVar32 = ptVar40->rlink;\n          ptVar6 = last;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar6 = ptVar41->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 == (tree *)0x0) {\n                ptVar6 = ptVar36->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              else {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n                last = ptVar36->trie;\n                ptVar6->next = last;\n              }\n            }\n            ptVar6 = ptVar32->trie;\n            last->next = ptVar6;\n          }\n          last = ptVar40->trie;\n          ptVar6->next = last;\n        }\n        ptVar38 = ptVar38->next;\n      } while (ptVar38 != (trie *)0x0);\n    }\n    pcVar37 = (kwset->obstack).chunk_limit;\n    pcVar10 = (kwset->obstack).next_free;\n    uVar29 = kwset->mind;\n    if ((uint)((int)pcVar37 - (int)pcVar10) < uVar29) {\n      _obstack_newchunk(&kwset->obstack,uVar29);\n      puVar35 = (uchar *)(kwset->obstack).object_base;\n      puVar12 = (uchar *)((kwset->obstack).next_free + uVar29);\n      pcVar37 = (kwset->obstack).chunk_limit;\n      uVar29 = kwset->mind;\n      (kwset->obstack).next_free = (char *)puVar12;\n      if (puVar12 == puVar35) goto LAB_00020968;\n    }\n    else {\n      puVar35 = (uchar *)(kwset->obstack).object_base;\n      puVar12 = (uchar *)(pcVar10 + uVar29);\n      (kwset->obstack).next_free = (char *)puVar12;\n      if (puVar12 == puVar35) {\nLAB_00020968:\n        (kwset->obstack).field_0x28 = (kwset->obstack).field_0x28 & 0xbf | 0x40;\n      }\n    }\n    uVar34 = (kwset->obstack).alignment_mask;\n    p_Var24 = (kwset->obstack).chunk;\n    pcVar10 = (char *)((uint)(puVar12 + uVar34) & ~uVar34);\n    (kwset->obstack).next_free = pcVar10;\n    if ((uint)((int)pcVar37 - (int)p_Var24) < (uint)((int)pcVar10 - (int)p_Var24)) {\n      (kwset->obstack).next_free = pcVar37;\n      pcVar10 = pcVar37;\n    }\n    ptVar38 = kwset->trie;\n    (kwset->obstack).object_base = pcVar10;\n    kwset->target = (char *)puVar35;\n    if (0 < (int)uVar29) {\n      *puVar35 = ptVar38->links->label;\n      ptVar38 = ptVar38->next;\n      if (1 < kwset->mind) {\n        iVar17 = 1;\n        do {\n          puVar12 = (uchar *)(kwset->target + iVar17);\n          iVar17 = iVar17 + 1;\n          *puVar12 = ptVar38->links->label;\n          ptVar38 = ptVar38->next;\n        } while (iVar17 < kwset->mind);\n      }\n    }\n    kwset_00 = kwsalloc(kwset->trans);\n    pVar8 = kwset->mind;\n    pcVar10 = kwset->target;\n    kwset_00->kwsexec =\n         (_func_ptrdiff_t_kwset_t_char_ptr_ptrdiff_t_kwsmatch_ptr__Bool *)\n         (PTR_LAB_00056238 + -0x47f8);\n    kwsincr(kwset_00,pcVar10,pVar8);\n    _obstack_free(&kwset->obstack,(void *)0x0);\n    pkVar22 = kwset_00;\n    pkVar31 = kwset;\n    do {\n      pkVar30 = pkVar31;\n      pkVar21 = pkVar22;\n      pkVar22 = (kwset_t)&(pkVar21->obstack).chunk_limit;\n      pkVar31 = (kwset_t)&(pkVar30->obstack).chunk_limit;\n      p_Var24 = (pkVar21->obstack).chunk;\n      pcVar37 = (pkVar21->obstack).object_base;\n      pcVar10 = (pkVar21->obstack).next_free;\n      (pkVar30->obstack).chunk_size = (pkVar21->obstack).chunk_size;\n      (pkVar30->obstack).chunk = p_Var24;\n      (pkVar30->obstack).object_base = pcVar37;\n      (pkVar30->obstack).next_free = pcVar10;\n      puVar4 = PTR_free_000564c0;\n    } while (pkVar22 != (kwset_t)&kwset_00->gc2);\n    aVar13 = (pkVar21->obstack).temp;\n    *(char **)pkVar31 = *(char **)pkVar22;\n    (pkVar30->obstack).temp = aVar13;\n    (*(code *)puVar4)(kwset_00);\n    iVar17 = 0xff;\n    if (kwset->mind < 0x100) {\n      iVar17 = kwset->mind;\n    }\n    (*(code *)PTR_memset_000563f4)(delta,iVar17,0x100);\n    ptVar38 = kwset->trie;\n    last = ptVar38;\n    if (ptVar38 != (trie *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (ptVar38 = ptVar38->next; ptVar38 != (trie *)0x0; ptVar38 = ptVar38->next) {\n      while( true ) {\n        iVar23 = ptVar38->parent->maxshift;\n        iVar17 = ptVar38->maxshift;\n        if (iVar23 < ptVar38->maxshift) {\n          ptVar38->maxshift = iVar23;\n          iVar17 = iVar23;\n        }\n        if (ptVar38->shift <= iVar17) break;\n        ptVar38->shift = iVar17;\n        ptVar38 = ptVar38->next;\n        if (ptVar38 == (trie *)0x0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar17 = 0xff;\n    if (kwset->mind < 0x100) {\n      iVar17 = kwset->mind;\n    }\n    (*(code *)PTR_memset_000563f4)(delta,iVar17,0x100);\n    ptVar38 = kwset->trie;\n    last = ptVar38;\n    if (ptVar38 != (trie *)0x0) {\nLAB_0001d27c:\n      pptVar42 = &last;\n      last = ptVar38;\n      do {\n        ptVar40 = ptVar38->links;\n        if (ptVar40 != (tree *)0x0) {\n          ptVar32 = ptVar40->llink;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              ptVar6 = last;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n              }\n              last = ptVar36->trie;\n              ptVar6->next = last;\n            }\n            ptVar6 = ptVar32->trie;\n            last->next = ptVar6;\n            last = ptVar6;\n          }\n          ptVar32 = ptVar40->rlink;\n          ptVar6 = last;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar6 = ptVar41->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 == (tree *)0x0) {\n                ptVar6 = ptVar36->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              else {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n                last = ptVar36->trie;\n                ptVar6->next = last;\n              }\n            }\n            ptVar6 = ptVar32->trie;\n            last->next = ptVar6;\n          }\n          last = ptVar40->trie;\n          ptVar40 = ptVar38->links;\n          iVar17 = ptVar38->depth;\n          ptVar6->next = last;\n          if (ptVar40 != (tree *)0x0) {\n            ptVar32 = ptVar40->llink;\n            if (ptVar32 != (tree *)0x0) {\n              ptVar36 = ptVar32->llink;\n              if (ptVar36 != (tree *)0x0) {\n                ptVar41 = ptVar36->llink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                ptVar41 = ptVar36->rlink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                if (iVar17 < (int)(uint)delta[ptVar36->label]) {\n                  delta[ptVar36->label] = (byte)iVar17;\n                }\n              }\n              ptVar36 = ptVar32->rlink;\n              if (ptVar36 != (tree *)0x0) {\n                ptVar41 = ptVar36->llink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                ptVar41 = ptVar36->rlink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                if (iVar17 < (int)(uint)delta[ptVar36->label]) {\n                  delta[ptVar36->label] = (byte)iVar17;\n                }\n              }\n              if (iVar17 < (int)(uint)delta[ptVar32->label]) {\n                delta[ptVar32->label] = (byte)iVar17;\n              }\n            }\n            ptVar32 = ptVar40->rlink;\n            if (ptVar32 != (tree *)0x0) {\n              ptVar36 = ptVar32->llink;\n              if (ptVar36 != (tree *)0x0) {\n                ptVar41 = ptVar36->llink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                ptVar41 = ptVar36->rlink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                if (iVar17 < (int)(uint)delta[ptVar36->label]) {\n                  delta[ptVar36->label] = (byte)iVar17;\n                }\n              }\n              ptVar36 = ptVar32->rlink;\n              if (ptVar36 != (tree *)0x0) {\n                ptVar41 = ptVar36->llink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                ptVar41 = ptVar36->rlink;\n                if (ptVar41 != (tree *)0x0) {\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 != (tree *)0x0) {\n                    treedelta(ptVar46->llink,iVar17,delta);\n                    treedelta(ptVar46->rlink,iVar17,delta);\n                    if (iVar17 < (int)(uint)delta[ptVar46->label]) {\n                      delta[ptVar46->label] = (byte)iVar17;\n                    }\n                  }\n                  if (iVar17 < (int)(uint)delta[ptVar41->label]) {\n                    delta[ptVar41->label] = (byte)iVar17;\n                  }\n                }\n                if (iVar17 < (int)(uint)delta[ptVar36->label]) {\n                  delta[ptVar36->label] = (byte)iVar17;\n                }\n              }\n              if (iVar17 < (int)(uint)delta[ptVar32->label]) {\n                delta[ptVar32->label] = (byte)iVar17;\n              }\n            }\n            if (iVar17 < (int)(uint)delta[ptVar40->label]) {\n              delta[ptVar40->label] = (byte)iVar17;\n            }\n            ptVar40 = ptVar38->links;\n          }\n        }\n        treefails(ptVar40,ptVar38->fail,kwset->trie,iVar44 == 1);\n        if (iVar44 == 1) {\n          pVar8 = kwset->mind;\n          ptVar6 = ptVar38->fail;\n          ptVar38->shift = pVar8;\n          ptVar38->maxshift = pVar8;\n          if (ptVar6 == (trie *)0x0) goto LAB_0001dfb4;\n          ptVar40 = ptVar38->links;\n          sVar45 = ptVar38->accepting;\n          do {\n            if (ptVar40 != (tree *)0x0) {\n              ptVar36 = ptVar40->llink;\n              ptVar32 = ptVar6->links;\n              if (ptVar36 == (tree *)0x0) {\n                ptVar36 = ptVar40->rlink;\n                if (ptVar36 == (tree *)0x0) {\n                  if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                  bVar15 = ptVar32->label;\n                }\n                else {\nLAB_0001e8cc:\n                  ptVar41 = ptVar36->llink;\n                  if (ptVar41 == (tree *)0x0) {\n                    ptVar41 = ptVar36->rlink;\n                    if (ptVar41 == (tree *)0x0) {\n                      if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                      bVar25 = ptVar32->label;\n                    }\n                    else {\nLAB_0001eaa0:\n                      ptVar46 = ptVar41->llink;\n                      if (ptVar46 != (tree *)0x0) {\n                        ptVar47 = ptVar46->llink;\n                        if (ptVar47 == (tree *)0x0) {\n                          ptVar47 = ptVar46->rlink;\n                          if (ptVar47 == (tree *)0x0) {\n                            if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                            bVar15 = ptVar32->label;\nLAB_0001fbdc:\n                            bVar25 = ptVar46->label;\n                            ptVar46 = ptVar32;\n                            bVar26 = bVar15;\njoined_r0x0001fbe0:\n                            while (bVar15 != bVar25) {\n                              ptVar47 = ptVar46->rlink;\n                              if (bVar25 < bVar15) {\n                                ptVar47 = ptVar46->llink;\n                              }\n                              if (ptVar47 == (tree *)0x0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\n                              ptVar46 = ptVar47;\n                              bVar15 = ptVar47->label;\n                            }\n                            ptVar46 = ptVar41->rlink;\n                            if (ptVar46 != (tree *)0x0) goto LAB_0001efdc;\n                            bVar15 = ptVar41->label;\n                            ptVar41 = ptVar32;\n                            bVar25 = bVar26;\n                            goto joined_r0x0001fb94;\n                          }\nLAB_0001f218:\n                          ptVar18 = ptVar47->llink;\n                          if (ptVar18 == (tree *)0x0) {\n                            ptStack_534 = ptVar47->rlink;\n                            if (ptStack_534 == (tree *)0x0) {\n                              if (ptVar32 != (tree *)0x0) {\n                                bVar15 = ptVar32->label;\n                                goto LAB_0001f8cc;\n                              }\n                            }\n                            else {\n                              _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                              if (CONCAT31(extraout_var_42,_Var14) != 0) goto LAB_0001f764;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptVar18->llink);\n                            if (((CONCAT31(extraout_var_32,_Var14) != 0) &&\n                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                CONCAT31(extraout_var_33,_Var14) != 0)) && (ptVar32 != (tree *)0x0))\n                            {\n                              bVar15 = ptVar32->label;\n                              bVar25 = bVar15;\n                              ptVar9 = ptVar32;\n                              while (ptVar18->label != bVar25) {\n                                pptVar2 = &ptVar9->llink;\n                                ptVar9 = ptVar9->rlink;\n                                if (ptVar18->label < bVar25) {\n                                  ptVar9 = *pptVar2;\n                                }\n                                if (ptVar9 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar9->label;\n                              }\n                              ptStack_534 = ptVar47->rlink;\n                              if (ptStack_534 != (tree *)0x0) {\n                                _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                                if (CONCAT31(extraout_var_49,_Var14) == 0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f764:\n                                _Var14 = hasevery(ptVar32,ptStack_534->rlink);\n                                if ((CONCAT31(extraout_var_43,_Var14) == 0) ||\n                                   (ptVar32 == (tree *)0x0)) goto LAB_0001e864;\n                                bVar15 = ptVar32->label;\n                                bVar25 = bVar15;\n                                ptVar18 = ptVar32;\n                                while (bVar25 != ptStack_534->label) {\n                                  pptVar2 = &ptVar18->llink;\n                                  ptVar18 = ptVar18->rlink;\n                                  if (ptStack_534->label < bVar25) {\n                                    ptVar18 = *pptVar2;\n                                  }\n                                  if (ptVar18 == (tree *)0x0) {\n                                    iVar17 = ptVar38->depth;\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar25 = ptVar18->label;\n                                }\n                              }\nLAB_0001f8cc:\n                              ptVar18 = ptVar32;\n                              bVar25 = bVar15;\n                              while (bVar25 != ptVar47->label) {\n                                pptVar2 = &ptVar18->llink;\n                                ptVar18 = ptVar18->rlink;\n                                if (ptVar47->label < bVar25) {\n                                  ptVar18 = *pptVar2;\n                                }\n                                if (ptVar18 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar18->label;\n                              }\n                              goto LAB_0001fbdc;\n                            }\n                          }\n                        }\n                        else {\n                          _Var14 = hasevery(ptVar32,ptVar47->llink);\n                          if (CONCAT31(extraout_var_08,_Var14) != 0) {\n                            ptVar18 = ptVar47->rlink;\n                            if (ptVar18 == (tree *)0x0) {\n                              if (ptVar32 != (tree *)0x0) {\n                                bVar15 = ptVar32->label;\n                                goto LAB_0001f9c8;\n                              }\n                            }\n                            else {\n                              _Var14 = hasevery(ptVar32,ptVar18->llink);\n                              if (((CONCAT31(extraout_var_09,_Var14) != 0) &&\n                                  (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                  CONCAT31(extraout_var_10,_Var14) != 0)) &&\n                                 (ptVar32 != (tree *)0x0)) {\n                                bVar15 = ptVar32->label;\n                                bVar25 = bVar15;\n                                ptVar9 = ptVar32;\n                                while (ptVar18->label != bVar25) {\n                                  pptVar2 = &ptVar9->llink;\n                                  ptVar9 = ptVar9->rlink;\n                                  if (ptVar18->label < bVar25) {\n                                    ptVar9 = *pptVar2;\n                                  }\n                                  if (ptVar9 == (tree *)0x0) {\n                                    iVar17 = ptVar38->depth;\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar25 = ptVar9->label;\n                                }\nLAB_0001f9c8:\n                                ptVar18 = ptVar32;\n                                bVar25 = bVar15;\n                                while (bVar25 != ptVar47->label) {\n                                  pptVar2 = &ptVar18->llink;\n                                  ptVar18 = ptVar18->rlink;\n                                  if (ptVar47->label < bVar25) {\n                                    ptVar18 = *pptVar2;\n                                  }\n                                  if (ptVar18 == (tree *)0x0) {\n                                    iVar17 = ptVar38->depth;\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar25 = ptVar18->label;\n                                }\n                                ptVar47 = ptVar46->rlink;\n                                if (ptVar47 != (tree *)0x0) goto LAB_0001f218;\n                                bVar25 = ptVar46->label;\n                                ptVar46 = ptVar32;\n                                bVar26 = bVar15;\n                                goto joined_r0x0001fbe0;\n                              }\n                            }\n                          }\n                        }\nLAB_0001e864:\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar46 = ptVar41->rlink;\n                      if (ptVar46 == (tree *)0x0) {\n                        if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                        bVar26 = ptVar32->label;\n                      }\n                      else {\nLAB_0001efdc:\n                        ptVar47 = ptVar46->llink;\n                        if (ptVar47 != (tree *)0x0) {\n                          ptVar18 = ptVar47->llink;\n                          if (ptVar18 == (tree *)0x0) {\n                            ptStack_534 = ptVar47->rlink;\n                            if (ptStack_534 == (tree *)0x0) {\n                              if (ptVar32 != (tree *)0x0) {\n                                bVar15 = ptVar32->label;\n                                goto LAB_0001f918;\n                              }\n                            }\n                            else {\n                              _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                              if (CONCAT31(extraout_var_38,_Var14) != 0) goto LAB_0001f654;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptVar18->llink);\n                            if (((CONCAT31(extraout_var_26,_Var14) != 0) &&\n                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                CONCAT31(extraout_var_27,_Var14) != 0)) && (ptVar32 != (tree *)0x0))\n                            {\n                              bVar15 = ptVar32->label;\n                              bVar25 = bVar15;\n                              ptVar9 = ptVar32;\n                              while (ptVar18->label != bVar25) {\n                                pptVar2 = &ptVar9->llink;\n                                ptVar9 = ptVar9->rlink;\n                                if (ptVar18->label < bVar25) {\n                                  ptVar9 = *pptVar2;\n                                }\n                                if (ptVar9 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar9->label;\n                              }\n                              ptStack_534 = ptVar47->rlink;\n                              if (ptStack_534 != (tree *)0x0) {\n                                _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                                if (CONCAT31(extraout_var_46,_Var14) == 0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f654:\n                                _Var14 = hasevery(ptVar32,ptStack_534->rlink);\n                                if ((CONCAT31(extraout_var_39,_Var14) == 0) ||\n                                   (ptVar32 == (tree *)0x0)) goto LAB_0001e864;\n                                bVar15 = ptVar32->label;\n                                bVar25 = bVar15;\n                                ptVar18 = ptVar32;\n                                while (bVar25 != ptStack_534->label) {\n                                  pptVar2 = &ptVar18->llink;\n                                  ptVar18 = ptVar18->rlink;\n                                  if (ptStack_534->label < bVar25) {\n                                    ptVar18 = *pptVar2;\n                                  }\n                                  if (ptVar18 == (tree *)0x0) {\n                                    iVar17 = ptVar38->depth;\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar25 = ptVar18->label;\n                                }\n                              }\nLAB_0001f918:\n                              ptVar18 = ptVar32;\n                              bVar25 = bVar15;\n                              while (bVar25 != ptVar47->label) {\n                                pptVar2 = &ptVar18->llink;\n                                ptVar18 = ptVar18->rlink;\n                                if (ptVar47->label < bVar25) {\n                                  ptVar18 = *pptVar2;\n                                }\n                                if (ptVar18 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar18->label;\n                              }\n                              ptVar47 = ptVar46->rlink;\n                              if (ptVar47 != (tree *)0x0) goto LAB_0001f3d4;\n                              bVar25 = ptVar46->label;\n                              ptVar46 = ptVar32;\n                              bVar26 = bVar15;\n                              goto joined_r0x00020768;\n                            }\n                          }\n                          goto LAB_0001e864;\n                        }\n                        ptVar47 = ptVar46->rlink;\n                        if (ptVar47 == (tree *)0x0) {\n                          if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                          bVar15 = ptVar32->label;\n                        }\n                        else {\nLAB_0001f3d4:\n                          ptVar18 = ptVar47->llink;\n                          if (ptVar18 == (tree *)0x0) {\n                            ptVar18 = ptVar47->rlink;\n                            if (ptVar18 == (tree *)0x0) {\n                              if (ptVar32 != (tree *)0x0) {\n                                bVar25 = ptVar32->label;\n                                goto LAB_00020814;\n                              }\n                            }\n                            else {\nLAB_0001fcfc:\n                              _Var14 = hasevery(ptVar32,ptVar18->llink);\n                              if (((CONCAT31(extraout_var_44,_Var14) != 0) &&\n                                  (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                  CONCAT31(extraout_var_45,_Var14) != 0)) &&\n                                 (ptVar32 != (tree *)0x0)) {\n                                bVar25 = ptVar32->label;\n                                bVar15 = bVar25;\n                                ptVar9 = ptVar32;\n                                while (ptVar18->label != bVar15) {\n                                  pptVar2 = &ptVar9->llink;\n                                  ptVar9 = ptVar9->rlink;\n                                  if (ptVar18->label < bVar15) {\n                                    ptVar9 = *pptVar2;\n                                  }\n                                  if (ptVar9 == (tree *)0x0) {\n                                    iVar17 = ptVar38->depth;\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar15 = ptVar9->label;\n                                }\nLAB_00020814:\n                                bVar26 = ptVar47->label;\n                                ptVar47 = ptVar32;\n                                bVar15 = bVar25;\n                                goto joined_r0x00020818;\n                              }\n                            }\n                            goto LAB_0001e864;\n                          }\n                          _Var14 = hasevery(ptVar32,ptVar18->llink);\n                          if (((CONCAT31(extraout_var_34,_Var14) == 0) ||\n                              (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                              CONCAT31(extraout_var_35,_Var14) == 0)) || (ptVar32 == (tree *)0x0))\n                          goto LAB_0001e864;\n                          bVar25 = ptVar32->label;\n                          bVar15 = bVar25;\n                          ptVar9 = ptVar32;\n                          while (bVar15 != ptVar18->label) {\n                            pptVar2 = &ptVar9->llink;\n                            ptVar9 = ptVar9->rlink;\n                            if (ptVar18->label < bVar15) {\n                              ptVar9 = *pptVar2;\n                            }\n                            if (ptVar9 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            bVar15 = ptVar9->label;\n                          }\n                          ptVar18 = ptVar47->rlink;\n                          if (ptVar18 != (tree *)0x0) goto LAB_0001fcfc;\n                          bVar26 = ptVar47->label;\n                          ptVar47 = ptVar32;\n                          bVar15 = bVar25;\njoined_r0x00020818:\n                          while (bVar25 != bVar26) {\n                            ptVar18 = ptVar47->rlink;\n                            if (bVar26 < bVar25) {\n                              ptVar18 = ptVar47->llink;\n                            }\n                            if (ptVar18 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            ptVar47 = ptVar18;\n                            bVar25 = ptVar18->label;\n                          }\n                        }\n                        bVar25 = ptVar46->label;\n                        ptVar46 = ptVar32;\n                        bVar26 = bVar15;\njoined_r0x00020768:\n                        while (bVar25 != bVar15) {\n                          ptVar47 = ptVar46->rlink;\n                          if (bVar25 < bVar15) {\n                            ptVar47 = ptVar46->llink;\n                          }\n                          if (ptVar47 == (tree *)0x0) {\n                            iVar17 = ptVar38->depth;\n                            goto LAB_0001e868;\n                          }\n                          ptVar46 = ptVar47;\n                          bVar15 = ptVar47->label;\n                        }\n                      }\n                      bVar15 = ptVar41->label;\n                      ptVar41 = ptVar32;\n                      bVar25 = bVar26;\njoined_r0x0001fb94:\n                      while (bVar15 != bVar26) {\n                        ptVar46 = ptVar41->rlink;\n                        if (bVar15 < bVar26) {\n                          ptVar46 = ptVar41->llink;\n                        }\n                        if (ptVar46 == (tree *)0x0) {\n                          iVar17 = ptVar38->depth;\n                          goto LAB_0001e868;\n                        }\n                        ptVar41 = ptVar46;\n                        bVar26 = ptVar46->label;\n                      }\n                    }\n                    bVar26 = ptVar36->label;\n                    ptVar36 = ptVar32;\n                    bVar15 = bVar25;\n                  }\n                  else {\n                    ptVar46 = ptVar41->llink;\n                    if (ptVar46 == (tree *)0x0) {\n                      ptVar46 = ptVar41->rlink;\n                      if (ptVar46 == (tree *)0x0) {\n                        if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                        bVar15 = ptVar32->label;\nLAB_0001f374:\n                        bVar26 = ptVar41->label;\n                        ptVar41 = ptVar32;\n                        bVar25 = bVar15;\n                        goto joined_r0x0001f378;\n                      }\nLAB_0001eb64:\n                      ptVar47 = ptVar46->llink;\n                      if (ptVar47 == (tree *)0x0) {\n                        ptVar47 = ptVar46->rlink;\n                        if (ptVar47 == (tree *)0x0) {\n                          if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                          bVar25 = ptVar32->label;\nLAB_0001fc3c:\n                          bVar26 = ptVar46->label;\n                          ptVar46 = ptVar32;\n                          bVar15 = bVar25;\njoined_r0x0001fc40:\n                          while (bVar25 != bVar26) {\n                            ptVar47 = ptVar46->rlink;\n                            if (bVar26 < bVar25) {\n                              ptVar47 = ptVar46->llink;\n                            }\n                            if (ptVar47 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            ptVar46 = ptVar47;\n                            bVar25 = ptVar47->label;\n                          }\n                          goto LAB_0001f374;\n                        }\nLAB_0001f180:\n                        ptVar18 = ptVar47->llink;\n                        if (ptVar18 == (tree *)0x0) {\n                          ptStack_534 = ptVar47->rlink;\n                          if (ptStack_534 == (tree *)0x0) {\n                            if (ptVar32 != (tree *)0x0) {\n                              bVar25 = ptVar32->label;\n                              goto LAB_0001f880;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                            if (CONCAT31(extraout_var_40,_Var14) != 0) goto LAB_0001f6dc;\n                          }\n                        }\n                        else {\n                          _Var14 = hasevery(ptVar32,ptVar18->llink);\n                          if (((CONCAT31(extraout_var_30,_Var14) != 0) &&\n                              (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                              CONCAT31(extraout_var_31,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {\n                            bVar25 = ptVar32->label;\n                            bVar15 = bVar25;\n                            ptVar9 = ptVar32;\n                            while (bVar15 != ptVar18->label) {\n                              pptVar2 = &ptVar9->llink;\n                              ptVar9 = ptVar9->rlink;\n                              if (ptVar18->label < bVar15) {\n                                ptVar9 = *pptVar2;\n                              }\n                              if (ptVar9 == (tree *)0x0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\n                              bVar15 = ptVar9->label;\n                            }\n                            ptStack_534 = ptVar47->rlink;\n                            if (ptStack_534 != (tree *)0x0) {\n                              _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                              if (CONCAT31(extraout_var_48,_Var14) == 0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\nLAB_0001f6dc:\n                              _Var14 = hasevery(ptVar32,ptStack_534->rlink);\n                              if ((CONCAT31(extraout_var_41,_Var14) == 0) ||\n                                 (ptVar32 == (tree *)0x0)) goto LAB_0001e864;\n                              bVar25 = ptVar32->label;\n                              bVar15 = bVar25;\n                              ptVar18 = ptVar32;\n                              while (ptStack_534->label != bVar15) {\n                                pptVar2 = &ptVar18->llink;\n                                ptVar18 = ptVar18->rlink;\n                                if (ptStack_534->label < bVar15) {\n                                  ptVar18 = *pptVar2;\n                                }\n                                if (ptVar18 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar15 = ptVar18->label;\n                              }\n                            }\nLAB_0001f880:\n                            ptVar18 = ptVar32;\n                            bVar15 = bVar25;\n                            while (ptVar47->label != bVar15) {\n                              pptVar2 = &ptVar18->llink;\n                              ptVar18 = ptVar18->rlink;\n                              if (ptVar47->label < bVar15) {\n                                ptVar18 = *pptVar2;\n                              }\n                              if (ptVar18 == (tree *)0x0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\n                              bVar15 = ptVar18->label;\n                            }\n                            goto LAB_0001fc3c;\n                          }\n                        }\n                      }\n                      else {\n                        _Var14 = hasevery(ptVar32,ptVar47->llink);\n                        if (CONCAT31(extraout_var_11,_Var14) != 0) {\n                          ptVar18 = ptVar47->rlink;\n                          if (ptVar18 == (tree *)0x0) {\n                            if (ptVar32 != (tree *)0x0) {\n                              bVar25 = ptVar32->label;\n                              goto LAB_0001faac;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptVar18->llink);\n                            if (((CONCAT31(extraout_var_12,_Var14) != 0) &&\n                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                CONCAT31(extraout_var_13,_Var14) != 0)) && (ptVar32 != (tree *)0x0))\n                            {\n                              bVar25 = ptVar32->label;\n                              bVar15 = bVar25;\n                              ptVar9 = ptVar32;\n                              while (bVar15 != ptVar18->label) {\n                                pptVar2 = &ptVar9->llink;\n                                ptVar9 = ptVar9->rlink;\n                                if (ptVar18->label < bVar15) {\n                                  ptVar9 = *pptVar2;\n                                }\n                                if (ptVar9 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar15 = ptVar9->label;\n                              }\nLAB_0001faac:\n                              if (ptVar47->label != bVar25) {\n                                FUN_0001facc();\n                                return;\n                              }\n                              ptVar47 = ptVar46->rlink;\n                              if (ptVar47 != (tree *)0x0) goto LAB_0001f180;\n                              bVar26 = ptVar46->label;\n                              ptVar46 = ptVar32;\n                              bVar15 = bVar25;\n                              goto joined_r0x0001fc40;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    ptVar47 = ptVar46->llink;\n                    if (ptVar47 == (tree *)0x0) {\n                      ptVar47 = ptVar46->rlink;\n                      if (ptVar47 == (tree *)0x0) {\n                        if (ptVar32 != (tree *)0x0) {\n                          bVar25 = ptVar32->label;\nLAB_0001f46c:\n                          bVar26 = ptVar46->label;\n                          ptVar46 = ptVar32;\n                          bVar15 = bVar25;\n                          goto joined_r0x0001f470;\n                        }\n                      }\n                      else {\nLAB_0001ed6c:\n                        _Var14 = hasevery(ptVar32,ptVar47->llink);\n                        if (CONCAT31(extraout_var_17,_Var14) != 0) {\n                          ptVar18 = ptVar47->rlink;\n                          if (ptVar18 == (tree *)0x0) {\n                            if (ptVar32 != (tree *)0x0) {\n                              bVar25 = ptVar32->label;\n                              goto LAB_0001fb44;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptVar18->llink);\n                            if (((CONCAT31(extraout_var_18,_Var14) != 0) &&\n                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                CONCAT31(extraout_var_19,_Var14) != 0)) && (ptVar32 != (tree *)0x0))\n                            {\n                              bVar25 = ptVar32->label;\n                              bVar15 = bVar25;\n                              ptVar9 = ptVar32;\n                              while (bVar15 != ptVar18->label) {\n                                pptVar2 = &ptVar9->llink;\n                                ptVar9 = ptVar9->rlink;\n                                if (ptVar18->label < bVar15) {\n                                  ptVar9 = *pptVar2;\n                                }\n                                if (ptVar9 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar15 = ptVar9->label;\n                              }\nLAB_0001fb44:\n                              ptVar18 = ptVar32;\n                              bVar15 = bVar25;\n                              while (ptVar47->label != bVar15) {\n                                pptVar2 = &ptVar18->llink;\n                                ptVar18 = ptVar18->rlink;\n                                if (ptVar47->label < bVar15) {\n                                  ptVar18 = *pptVar2;\n                                }\n                                if (ptVar18 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar15 = ptVar18->label;\n                              }\n                              goto LAB_0001f46c;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    _Var14 = hasevery(ptVar32,ptVar47->llink);\n                    if (((CONCAT31(extraout_var_02,_Var14) == 0) ||\n                        (_Var14 = hasevery(ptVar32,ptVar47->rlink),\n                        CONCAT31(extraout_var_03,_Var14) == 0)) || (ptVar32 == (tree *)0x0))\n                    goto LAB_0001e864;\n                    bVar25 = ptVar32->label;\n                    bVar15 = bVar25;\n                    ptVar18 = ptVar32;\n                    while (ptVar47->label != bVar15) {\n                      pptVar2 = &ptVar18->llink;\n                      ptVar18 = ptVar18->rlink;\n                      if (ptVar47->label < bVar15) {\n                        ptVar18 = *pptVar2;\n                      }\n                      if (ptVar18 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      bVar15 = ptVar18->label;\n                    }\n                    ptVar47 = ptVar46->rlink;\n                    if (ptVar47 != (tree *)0x0) goto LAB_0001ed6c;\n                    bVar26 = ptVar46->label;\n                    ptVar46 = ptVar32;\n                    bVar15 = bVar25;\njoined_r0x0001f470:\n                    while (bVar25 != bVar26) {\n                      ptVar47 = ptVar46->rlink;\n                      if (bVar26 < bVar25) {\n                        ptVar47 = ptVar46->llink;\n                      }\n                      if (ptVar47 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar46 = ptVar47;\n                      bVar25 = ptVar47->label;\n                    }\n                    ptVar46 = ptVar41->rlink;\n                    if (ptVar46 != (tree *)0x0) goto LAB_0001eb64;\n                    bVar26 = ptVar41->label;\n                    ptVar41 = ptVar32;\n                    bVar25 = bVar15;\njoined_r0x0001f378:\n                    while (bVar15 != bVar26) {\n                      ptVar46 = ptVar41->rlink;\n                      if (bVar26 < bVar15) {\n                        ptVar46 = ptVar41->llink;\n                      }\n                      if (ptVar46 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar41 = ptVar46;\n                      bVar15 = ptVar46->label;\n                    }\n                    ptVar41 = ptVar36->rlink;\n                    if (ptVar41 != (tree *)0x0) goto LAB_0001eaa0;\n                    bVar26 = ptVar36->label;\n                    ptVar36 = ptVar32;\n                    bVar15 = bVar25;\n                  }\n                  while (bVar26 != bVar25) {\n                    ptVar41 = ptVar36->rlink;\n                    if (bVar26 < bVar25) {\n                      ptVar41 = ptVar36->llink;\n                    }\n                    if (ptVar41 == (tree *)0x0) {\n                      iVar17 = ptVar38->depth;\n                      goto LAB_0001e868;\n                    }\n                    ptVar36 = ptVar41;\n                    bVar25 = ptVar41->label;\n                  }\n                }\n                bVar25 = ptVar40->label;\n              }\n              else {\n                ptVar41 = ptVar36->llink;\n                if (ptVar41 == (tree *)0x0) {\n                  ptVar41 = ptVar36->rlink;\n                  if (ptVar41 == (tree *)0x0) {\n                    if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                    bVar25 = ptVar32->label;\nLAB_0001ef7c:\n                    bVar26 = ptVar36->label;\n                    ptVar36 = ptVar32;\n                    bVar15 = bVar25;\n                    goto joined_r0x0001ef80;\n                  }\nLAB_0001e974:\n                  ptVar46 = ptVar41->llink;\n                  if (ptVar46 != (tree *)0x0) {\n                    ptVar47 = ptVar46->llink;\n                    if (ptVar47 == (tree *)0x0) {\n                      ptVar47 = ptVar46->rlink;\n                      if (ptVar47 == (tree *)0x0) {\n                        if (ptVar32 != (tree *)0x0) {\n                          bVar15 = ptVar32->label;\nLAB_0001f4cc:\n                          bVar25 = ptVar46->label;\n                          ptVar46 = ptVar32;\n                          bVar26 = bVar15;\n                          goto joined_r0x0001f4d0;\n                        }\n                      }\n                      else {\nLAB_0001ee1c:\n                        _Var14 = hasevery(ptVar32,ptVar47->llink);\n                        if (CONCAT31(extraout_var_20,_Var14) != 0) {\n                          ptVar18 = ptVar47->rlink;\n                          if (ptVar18 == (tree *)0x0) {\n                            if (ptVar32 != (tree *)0x0) {\n                              bVar15 = ptVar32->label;\n                              goto LAB_0001faf8;\n                            }\n                          }\n                          else {\n                            _Var14 = hasevery(ptVar32,ptVar18->llink);\n                            if (((CONCAT31(extraout_var_21,_Var14) != 0) &&\n                                (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                                CONCAT31(extraout_var_22,_Var14) != 0)) && (ptVar32 != (tree *)0x0))\n                            {\n                              bVar15 = ptVar32->label;\n                              bVar25 = bVar15;\n                              ptVar9 = ptVar32;\n                              while (bVar25 != ptVar18->label) {\n                                pptVar2 = &ptVar9->llink;\n                                ptVar9 = ptVar9->rlink;\n                                if (ptVar18->label < bVar25) {\n                                  ptVar9 = *pptVar2;\n                                }\n                                if (ptVar9 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar9->label;\n                              }\nLAB_0001faf8:\n                              ptVar18 = ptVar32;\n                              bVar25 = bVar15;\n                              while (ptVar47->label != bVar25) {\n                                pptVar2 = &ptVar18->llink;\n                                ptVar18 = ptVar18->rlink;\n                                if (ptVar47->label < bVar25) {\n                                  ptVar18 = *pptVar2;\n                                }\n                                if (ptVar18 == (tree *)0x0) {\n                                  iVar17 = ptVar38->depth;\n                                  goto LAB_0001e868;\n                                }\n                                bVar25 = ptVar18->label;\n                              }\n                              goto LAB_0001f4cc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    _Var14 = hasevery(ptVar32,ptVar47->llink);\n                    if (((CONCAT31(extraout_var_04,_Var14) == 0) ||\n                        (_Var14 = hasevery(ptVar32,ptVar47->rlink),\n                        CONCAT31(extraout_var_05,_Var14) == 0)) || (ptVar32 == (tree *)0x0))\n                    goto LAB_0001e864;\n                    bVar15 = ptVar32->label;\n                    bVar25 = bVar15;\n                    ptVar18 = ptVar32;\n                    while (bVar25 != ptVar47->label) {\n                      pptVar2 = &ptVar18->llink;\n                      ptVar18 = ptVar18->rlink;\n                      if (ptVar47->label < bVar25) {\n                        ptVar18 = *pptVar2;\n                      }\n                      if (ptVar18 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      bVar25 = ptVar18->label;\n                    }\n                    ptVar47 = ptVar46->rlink;\n                    if (ptVar47 != (tree *)0x0) goto LAB_0001ee1c;\n                    bVar25 = ptVar46->label;\n                    ptVar46 = ptVar32;\n                    bVar26 = bVar15;\njoined_r0x0001f4d0:\n                    while (bVar25 != bVar15) {\n                      ptVar47 = ptVar46->rlink;\n                      if (bVar25 < bVar15) {\n                        ptVar47 = ptVar46->llink;\n                      }\n                      if (ptVar47 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar46 = ptVar47;\n                      bVar15 = ptVar47->label;\n                    }\n                    ptVar46 = ptVar41->rlink;\n                    if (ptVar46 != (tree *)0x0) goto LAB_0001ec1c;\n                    bVar15 = ptVar41->label;\n                    ptVar41 = ptVar32;\n                    bVar25 = bVar26;\njoined_r0x0001f32c:\n                    while (bVar15 != bVar26) {\n                      ptVar46 = ptVar41->rlink;\n                      if (bVar15 < bVar26) {\n                        ptVar46 = ptVar41->llink;\n                      }\n                      if (ptVar46 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar41 = ptVar46;\n                      bVar26 = ptVar46->label;\n                    }\n                    goto LAB_0001ef7c;\n                  }\n                  ptVar46 = ptVar41->rlink;\n                  if (ptVar46 == (tree *)0x0) {\n                    if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                    bVar26 = ptVar32->label;\nLAB_0001f328:\n                    bVar15 = ptVar41->label;\n                    ptVar41 = ptVar32;\n                    bVar25 = bVar26;\n                    goto joined_r0x0001f32c;\n                  }\nLAB_0001ec1c:\n                  ptVar47 = ptVar46->llink;\n                  if (ptVar47 != (tree *)0x0) {\n                    _Var14 = hasevery(ptVar32,ptVar47->llink);\n                    if (CONCAT31(extraout_var_14,_Var14) != 0) {\n                      ptVar18 = ptVar47->rlink;\n                      if (ptVar18 == (tree *)0x0) {\n                        if (ptVar32 != (tree *)0x0) {\n                          bVar15 = ptVar32->label;\n                          goto LAB_0001fa14;\n                        }\n                      }\n                      else {\n                        _Var14 = hasevery(ptVar32,ptVar18->llink);\n                        if (((CONCAT31(extraout_var_15,_Var14) != 0) &&\n                            (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                            CONCAT31(extraout_var_16,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {\n                          bVar15 = ptVar32->label;\n                          bVar25 = bVar15;\n                          ptVar9 = ptVar32;\n                          while (bVar25 != ptVar18->label) {\n                            pptVar2 = &ptVar9->llink;\n                            ptVar9 = ptVar9->rlink;\n                            if (ptVar18->label < bVar25) {\n                              ptVar9 = *pptVar2;\n                            }\n                            if (ptVar9 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            bVar25 = ptVar9->label;\n                          }\nLAB_0001fa14:\n                          ptVar18 = ptVar32;\n                          bVar25 = bVar15;\n                          while (bVar25 != ptVar47->label) {\n                            pptVar2 = &ptVar18->llink;\n                            ptVar18 = ptVar18->rlink;\n                            if (ptVar47->label < bVar25) {\n                              ptVar18 = *pptVar2;\n                            }\n                            if (ptVar18 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            bVar25 = ptVar18->label;\n                          }\n                          ptVar47 = ptVar46->rlink;\n                          if (ptVar47 != (tree *)0x0) goto LAB_0001f0e8;\n                          bVar25 = ptVar46->label;\n                          ptVar46 = ptVar32;\n                          bVar26 = bVar15;\n                          goto joined_r0x0001fc8c;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  ptVar47 = ptVar46->rlink;\n                  if (ptVar47 == (tree *)0x0) {\n                    if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                    bVar15 = ptVar32->label;\nLAB_0001fc88:\n                    bVar25 = ptVar46->label;\n                    ptVar46 = ptVar32;\n                    bVar26 = bVar15;\njoined_r0x0001fc8c:\n                    while (bVar25 != bVar15) {\n                      ptVar47 = ptVar46->rlink;\n                      if (bVar25 < bVar15) {\n                        ptVar47 = ptVar46->llink;\n                      }\n                      if (ptVar47 == (tree *)0x0) {\n                        iVar17 = ptVar38->depth;\n                        goto LAB_0001e868;\n                      }\n                      ptVar46 = ptVar47;\n                      bVar15 = ptVar47->label;\n                    }\n                    goto LAB_0001f328;\n                  }\nLAB_0001f0e8:\n                  ptVar18 = ptVar47->llink;\n                  if (ptVar18 == (tree *)0x0) {\n                    ptStack_534 = ptVar47->rlink;\n                    if (ptStack_534 == (tree *)0x0) {\n                      if (ptVar32 != (tree *)0x0) {\n                        bVar15 = ptVar32->label;\nLAB_0001f964:\n                        ptVar18 = ptVar32;\n                        bVar25 = bVar15;\n                        while (ptVar47->label != bVar25) {\n                          pptVar2 = &ptVar18->llink;\n                          ptVar18 = ptVar18->rlink;\n                          if (ptVar47->label < bVar25) {\n                            ptVar18 = *pptVar2;\n                          }\n                          if (ptVar18 == (tree *)0x0) {\n                            iVar17 = ptVar38->depth;\n                            goto LAB_0001e868;\n                          }\n                          bVar25 = ptVar18->label;\n                        }\n                        goto LAB_0001fc88;\n                      }\n                    }\n                    else {\n                      _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                      if (CONCAT31(extraout_var_36,_Var14) != 0) {\nLAB_0001f5cc:\n                        _Var14 = hasevery(ptVar32,ptStack_534->rlink);\n                        if ((CONCAT31(extraout_var_37,_Var14) != 0) && (ptVar32 != (tree *)0x0)) {\n                          bVar15 = ptVar32->label;\n                          bVar25 = bVar15;\n                          ptVar18 = ptVar32;\n                          while (ptStack_534->label != bVar25) {\n                            pptVar2 = &ptVar18->llink;\n                            ptVar18 = ptVar18->rlink;\n                            if (ptStack_534->label < bVar25) {\n                              ptVar18 = *pptVar2;\n                            }\n                            if (ptVar18 == (tree *)0x0) {\n                              iVar17 = ptVar38->depth;\n                              goto LAB_0001e868;\n                            }\n                            bVar25 = ptVar18->label;\n                          }\n                          goto LAB_0001f964;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  _Var14 = hasevery(ptVar32,ptVar18->llink);\n                  if (((CONCAT31(extraout_var_28,_Var14) == 0) ||\n                      (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                      CONCAT31(extraout_var_29,_Var14) == 0)) || (ptVar32 == (tree *)0x0))\n                  goto LAB_0001e864;\n                  bVar15 = ptVar32->label;\n                  bVar25 = bVar15;\n                  ptVar9 = ptVar32;\n                  while (bVar25 != ptVar18->label) {\n                    pptVar2 = &ptVar9->llink;\n                    ptVar9 = ptVar9->rlink;\n                    if (ptVar18->label < bVar25) {\n                      ptVar9 = *pptVar2;\n                    }\n                    if (ptVar9 == (tree *)0x0) {\n                      iVar17 = ptVar38->depth;\n                      goto LAB_0001e868;\n                    }\n                    bVar25 = ptVar9->label;\n                  }\n                  ptStack_534 = ptVar47->rlink;\n                  if (ptStack_534 == (tree *)0x0) goto LAB_0001f964;\n                  _Var14 = hasevery(ptVar32,ptStack_534->llink);\n                  if (CONCAT31(extraout_var_47,_Var14) != 0) goto LAB_0001f5cc;\n                  iVar17 = ptVar38->depth;\nLAB_0001e868:\n                  iVar17 = iVar17 - ptVar6->depth;\n                  if (iVar17 < ptVar6->shift) {\n                    ptVar6->shift = iVar17;\n                  }\n                  goto LAB_0001e884;\n                }\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  _Var14 = hasevery(ptVar32,ptVar46->llink);\n                  if (CONCAT31(extraout_var,_Var14) != 0) {\n                    ptVar47 = ptVar46->rlink;\n                    if (ptVar47 == (tree *)0x0) {\n                      if (ptVar32 != (tree *)0x0) {\n                        bVar15 = ptVar32->label;\n                        goto LAB_0001ed20;\n                      }\n                    }\n                    else {\n                      _Var14 = hasevery(ptVar32,ptVar47->llink);\n                      if (((CONCAT31(extraout_var_00,_Var14) != 0) &&\n                          (_Var14 = hasevery(ptVar32,ptVar47->rlink),\n                          CONCAT31(extraout_var_01,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {\n                        bVar15 = ptVar32->label;\n                        bVar25 = bVar15;\n                        ptVar18 = ptVar32;\n                        while (bVar25 != ptVar47->label) {\n                          pptVar2 = &ptVar18->llink;\n                          ptVar18 = ptVar18->rlink;\n                          if (ptVar47->label < bVar25) {\n                            ptVar18 = *pptVar2;\n                          }\n                          if (ptVar18 == (tree *)0x0) goto LAB_0001e864;\n                          bVar25 = ptVar18->label;\n                        }\nLAB_0001ed20:\n                        ptVar47 = ptVar32;\n                        bVar25 = bVar15;\n                        while (ptVar46->label != bVar25) {\n                          pptVar2 = &ptVar47->llink;\n                          ptVar47 = ptVar47->rlink;\n                          if (ptVar46->label < bVar25) {\n                            ptVar47 = *pptVar2;\n                          }\n                          if (ptVar47 == (tree *)0x0) {\n                            iVar17 = ptVar38->depth;\n                            goto LAB_0001e868;\n                          }\n                          bVar25 = ptVar47->label;\n                        }\n                        ptVar46 = ptVar41->rlink;\n                        if (ptVar46 != (tree *)0x0) goto LAB_0001ea10;\n                        bVar26 = ptVar41->label;\n                        ptVar41 = ptVar32;\n                        bVar25 = bVar15;\n                        goto joined_r0x0001f08c;\n                      }\n                    }\n                  }\n                  goto LAB_0001e864;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  if (ptVar32 == (tree *)0x0) goto LAB_0001e864;\n                  bVar15 = ptVar32->label;\n                }\n                else {\nLAB_0001ea10:\n                  ptVar47 = ptVar46->llink;\n                  if (ptVar47 == (tree *)0x0) {\n                    ptVar47 = ptVar46->rlink;\n                    if (ptVar47 == (tree *)0x0) {\n                      if (ptVar32 != (tree *)0x0) {\n                        bVar25 = ptVar32->label;\nLAB_0001f52c:\n                        bVar26 = ptVar46->label;\n                        ptVar46 = ptVar32;\n                        bVar15 = bVar25;\n                        goto joined_r0x0001f530;\n                      }\n                    }\n                    else {\nLAB_0001eecc:\n                      _Var14 = hasevery(ptVar32,ptVar47->llink);\n                      if (CONCAT31(extraout_var_23,_Var14) != 0) {\n                        ptVar18 = ptVar47->rlink;\n                        if (ptVar18 == (tree *)0x0) {\n                          if (ptVar32 != (tree *)0x0) {\n                            bVar25 = ptVar32->label;\n                            goto LAB_0001fa60;\n                          }\n                        }\n                        else {\n                          _Var14 = hasevery(ptVar32,ptVar18->llink);\n                          if (((CONCAT31(extraout_var_24,_Var14) != 0) &&\n                              (_Var14 = hasevery(ptVar32,ptVar18->rlink),\n                              CONCAT31(extraout_var_25,_Var14) != 0)) && (ptVar32 != (tree *)0x0)) {\n                            bVar25 = ptVar32->label;\n                            bVar15 = bVar25;\n                            ptVar9 = ptVar32;\n                            while (ptVar18->label != bVar15) {\n                              pptVar2 = &ptVar9->llink;\n                              ptVar9 = ptVar9->rlink;\n                              if (ptVar18->label < bVar15) {\n                                ptVar9 = *pptVar2;\n                              }\n                              if (ptVar9 == (tree *)0x0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\n                              bVar15 = ptVar9->label;\n                            }\nLAB_0001fa60:\n                            ptVar18 = ptVar32;\n                            bVar15 = bVar25;\n                            while (ptVar47->label != bVar15) {\n                              pptVar2 = &ptVar18->llink;\n                              ptVar18 = ptVar18->rlink;\n                              if (ptVar47->label < bVar15) {\n                                ptVar18 = *pptVar2;\n                              }\n                              if (ptVar18 == (tree *)0x0) {\n                                iVar17 = ptVar38->depth;\n                                goto LAB_0001e868;\n                              }\n                              bVar15 = ptVar18->label;\n                            }\n                            goto LAB_0001f52c;\n                          }\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  _Var14 = hasevery(ptVar32,ptVar47->llink);\n                  if (((CONCAT31(extraout_var_06,_Var14) == 0) ||\n                      (_Var14 = hasevery(ptVar32,ptVar47->rlink),\n                      CONCAT31(extraout_var_07,_Var14) == 0)) || (ptVar32 == (tree *)0x0))\n                  goto LAB_0001e864;\n                  bVar25 = ptVar32->label;\n                  bVar15 = bVar25;\n                  ptVar18 = ptVar32;\n                  while (ptVar47->label != bVar15) {\n                    pptVar2 = &ptVar18->llink;\n                    ptVar18 = ptVar18->rlink;\n                    if (ptVar47->label < bVar15) {\n                      ptVar18 = *pptVar2;\n                    }\n                    if (ptVar18 == (tree *)0x0) {\n                      iVar17 = ptVar38->depth;\n                      goto LAB_0001e868;\n                    }\n                    bVar15 = ptVar18->label;\n                  }\n                  ptVar47 = ptVar46->rlink;\n                  if (ptVar47 != (tree *)0x0) goto LAB_0001eecc;\n                  bVar26 = ptVar46->label;\n                  ptVar46 = ptVar32;\n                  bVar15 = bVar25;\njoined_r0x0001f530:\n                  while (bVar25 != bVar26) {\n                    ptVar47 = ptVar46->rlink;\n                    if (bVar26 < bVar25) {\n                      ptVar47 = ptVar46->llink;\n                    }\n                    if (ptVar47 == (tree *)0x0) {\n                      iVar17 = ptVar38->depth;\n                      goto LAB_0001e868;\n                    }\n                    ptVar46 = ptVar47;\n                    bVar25 = ptVar47->label;\n                  }\n                }\n                bVar26 = ptVar41->label;\n                ptVar41 = ptVar32;\n                bVar25 = bVar15;\njoined_r0x0001f08c:\n                while (bVar15 != bVar26) {\n                  ptVar46 = ptVar41->rlink;\n                  if (bVar26 < bVar15) {\n                    ptVar46 = ptVar41->llink;\n                  }\n                  if (ptVar46 == (tree *)0x0) {\n                    iVar17 = ptVar38->depth;\n                    goto LAB_0001e868;\n                  }\n                  ptVar41 = ptVar46;\n                  bVar15 = ptVar46->label;\n                }\n                ptVar41 = ptVar36->rlink;\n                if (ptVar41 != (tree *)0x0) goto LAB_0001e974;\n                bVar26 = ptVar36->label;\n                ptVar36 = ptVar32;\n                bVar15 = bVar25;\njoined_r0x0001ef80:\n                while (bVar25 != bVar26) {\n                  ptVar41 = ptVar36->rlink;\n                  if (bVar26 < bVar25) {\n                    ptVar41 = ptVar36->llink;\n                  }\n                  if (ptVar41 == (tree *)0x0) {\n                    iVar17 = ptVar38->depth;\n                    goto LAB_0001e868;\n                  }\n                  ptVar36 = ptVar41;\n                  bVar25 = ptVar41->label;\n                }\n                ptVar36 = ptVar40->rlink;\n                if (ptVar36 != (tree *)0x0) goto LAB_0001e8cc;\n                bVar25 = ptVar40->label;\n              }\n              while (bVar25 != bVar15) {\n                pptVar2 = &ptVar32->llink;\n                ptVar32 = ptVar32->rlink;\n                if (bVar25 < bVar15) {\n                  ptVar32 = *pptVar2;\n                }\n                if (ptVar32 == (tree *)0x0) {\n                  iVar17 = ptVar38->depth;\n                  goto LAB_0001e868;\n                }\n                bVar15 = ptVar32->label;\n              }\n            }\nLAB_0001e884:\n            if ((sVar45 != 0) &&\n               (iVar17 = ptVar38->depth - ptVar6->depth, iVar17 < ptVar6->maxshift)) {\n              ptVar6->maxshift = iVar17;\n            }\n            ptVar6 = ptVar6->fail;\n          } while (ptVar6 != (trie *)0x0);\n          ptVar38 = ptVar38->next;\n        }\n        else {\nLAB_0001dfb4:\n          ptVar38 = ptVar38->next;\n        }\n      } while (ptVar38 != (trie *)0x0);\n      if (iVar44 == 1) {\n        ptVar38 = kwset->trie;\n        goto LAB_000206c8;\n      }\n    }\n  }\nLAB_0001dfc8:\n  if (pbVar43 == (byte *)0x0) {\n    pptVar42 = kwset->next;\n    (*(code *)PTR_memset_000563f4)(pptVar42,0,0x400);\n    ptVar40 = kwset->trie->links;\n    if (ptVar40 != (tree *)0x0) goto LAB_0001dff8;\nLAB_0001f81c:\n    ptVar38 = (trie *)kwset->next;\n    uVar7 = 0;\n    uVar29 = 0xfffffffe;\n    uVar34 = 0xffffffff;\n    do {\n      uVar33 = uVar29;\n      uVar39 = uVar34;\n      if ((*(trie **)ptVar38 != (trie *)0x0) && (uVar33 = uVar7, uVar39 = uVar7, -2 < (int)uVar29))\n      {\n        if (uVar29 == uVar7) {\n          uVar33 = uVar29;\n          uVar39 = uVar34;\n          if (uVar29 != uVar34) {\n            uVar39 = 0xffffffff;\n          }\n        }\n        else {\n          uVar33 = uVar29;\n          if (uVar29 != uVar34) {\n            uVar33 = 0xffffffff;\n            uVar39 = uVar34;\n          }\n        }\n      }\n      uVar7 = uVar7 + 1;\n      ptVar38 = (trie *)((int)ptVar38 + 4);\n      uVar29 = uVar33;\n      uVar34 = uVar39;\n    } while (uVar7 != 0x100);\n  }\n  else {\n    pptVar42 = nextbuf;\n    (*(code *)PTR_memset_000563f4)(pptVar42,0,0x400);\n    ptVar40 = kwset->trie->links;\n    if (ptVar40 != (tree *)0x0) {\nLAB_0001dff8:\n      ptVar32 = ptVar40->llink;\n      if (ptVar32 != (tree *)0x0) {\n        ptVar36 = ptVar32->llink;\n        if (ptVar36 != (tree *)0x0) {\n          ptVar41 = ptVar36->llink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          ptVar41 = ptVar36->rlink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          pptVar42[ptVar36->label] = ptVar36->trie;\n        }\n        ptVar36 = ptVar32->rlink;\n        if (ptVar36 != (tree *)0x0) {\n          ptVar41 = ptVar36->llink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          ptVar41 = ptVar36->rlink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          pptVar42[ptVar36->label] = ptVar36->trie;\n        }\n        pptVar42[ptVar32->label] = ptVar32->trie;\n      }\n      ptVar32 = ptVar40->rlink;\n      if (ptVar32 != (tree *)0x0) {\n        ptVar36 = ptVar32->llink;\n        if (ptVar36 != (tree *)0x0) {\n          ptVar41 = ptVar36->llink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          ptVar41 = ptVar36->rlink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          pptVar42[ptVar36->label] = ptVar36->trie;\n        }\n        ptVar36 = ptVar32->rlink;\n        if (ptVar36 != (tree *)0x0) {\n          ptVar41 = ptVar36->llink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          ptVar41 = ptVar36->rlink;\n          if (ptVar41 != (tree *)0x0) {\n            if (ptVar41->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->llink->llink,pptVar42);\n            }\n            if (ptVar41->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n              treenext(ptVar41->rlink->llink,pptVar42);\n            }\n            pptVar42[ptVar41->label] = ptVar41->trie;\n          }\n          pptVar42[ptVar36->label] = ptVar36->trie;\n        }\n        pptVar42[ptVar32->label] = ptVar32->trie;\n      }\n      pptVar42[ptVar40->label] = ptVar40->trie;\n      if (pbVar43 == (byte *)0x0) goto LAB_0001f81c;\n    }\n    ptVar38 = (trie *)kwset->next;\n    uVar7 = 0;\n    uVar29 = 0xfffffffe;\n    uVar34 = 0xffffffff;\n    do {\n      uVar27 = (uint)pbVar43[uVar7];\n      ptVar6 = pptVar42[uVar27];\n      *(trie **)ptVar38 = ptVar6;\n      uVar33 = uVar29;\n      uVar39 = uVar34;\n      if ((ptVar6 != (trie *)0x0) && (uVar33 = uVar27, uVar39 = uVar7, -2 < (int)uVar29)) {\n        if (uVar27 == uVar29) {\n          uVar33 = uVar29;\n          if (uVar29 != uVar34) {\n            uVar39 = 0xffffffff;\n          }\n        }\n        else if ((uVar27 != uVar7) || (uVar33 = uVar29, uVar29 != uVar34)) {\n          uVar33 = 0xffffffff;\n          uVar39 = uVar34;\n        }\n      }\n      uVar7 = uVar7 + 1;\n      ptVar38 = (trie *)((int)ptVar38 + 4);\n      uVar29 = uVar33;\n      uVar34 = uVar39;\n    } while (uVar7 != 0x100);\n  }\n  kwset->gc1 = uVar33;\n  kwset->gc1help = uVar39;\n  if (iVar44 != 1) goto LAB_0001e6f8;\n  pcVar37 = (kwset->obstack).chunk_limit;\n  pcVar10 = (kwset->obstack).next_free;\n  uVar29 = kwset->mind;\n  if ((uint)((int)pcVar37 - (int)pcVar10) < uVar29) {\n    _obstack_newchunk(&kwset->obstack,uVar29);\n    pcVar19 = (kwset->obstack).object_base;\n    pcVar10 = (kwset->obstack).next_free + uVar29;\n    pcVar37 = (kwset->obstack).chunk_limit;\n    uVar29 = kwset->mind;\n    (kwset->obstack).next_free = pcVar10;\n    if (pcVar10 == pcVar19) goto LAB_000209a8;\n  }\n  else {\n    pcVar19 = (kwset->obstack).object_base;\n    pcVar10 = pcVar10 + uVar29;\n    (kwset->obstack).next_free = pcVar10;\n    if (pcVar10 == pcVar19) {\nLAB_000209a8:\n      (kwset->obstack).field_0x28 = (kwset->obstack).field_0x28 & 0xbf | 0x40;\n    }\n  }\n  uVar34 = (kwset->obstack).alignment_mask;\n  p_Var24 = (kwset->obstack).chunk;\n  pcVar10 = (char *)((uint)(pcVar10 + uVar34) & ~uVar34);\n  (kwset->obstack).next_free = pcVar10;\n  if ((uint)((int)pcVar37 - (int)p_Var24) < (uint)((int)pcVar10 - (int)p_Var24)) {\n    (kwset->obstack).next_free = pcVar37;\n    pcVar10 = pcVar37;\n  }\n  ptVar38 = kwset->trie;\n  (kwset->obstack).object_base = pcVar10;\n  kwset->target = pcVar19;\n  if (-1 < (int)(uVar29 - 1)) {\n    pcVar19[uVar29 - 1] = ptVar38->links->label;\n    ptVar38 = ptVar38->next;\n    for (iVar44 = uVar29 - 2; iVar44 != -1; iVar44 = iVar44 + -1) {\n      kwset->target[iVar44] = ptVar38->links->label;\n      ptVar38 = ptVar38->next;\n    }\n    uVar29 = kwset->mind;\n  }\n  bVar1 = (int)uVar29 < 2;\n  if (!bVar1) {\n    pcVar37 = (kwset->obstack).chunk_limit;\n    pcVar10 = (kwset->obstack).next_free;\n    uVar34 = (uVar29 - 1) * 4;\n    if ((uint)((int)pcVar37 - (int)pcVar10) < uVar34) {\n      _obstack_newchunk(&kwset->obstack,uVar34);\n      uVar29 = kwset->mind;\n      pcVar10 = (kwset->obstack).next_free;\n      pcVar37 = (kwset->obstack).chunk_limit;\n      bVar1 = (int)uVar29 < 2;\n    }\n    ppVar20 = (ptrdiff_t *)(kwset->obstack).object_base;\n    ppVar11 = (ptrdiff_t *)(pcVar10 + uVar34);\n    (kwset->obstack).next_free = (char *)ppVar11;\n    if (ppVar11 == ppVar20) {\n      (kwset->obstack).field_0x28 = (kwset->obstack).field_0x28 & 0xbf | 0x40;\n    }\n    uVar34 = (kwset->obstack).alignment_mask;\n    p_Var24 = (kwset->obstack).chunk;\n    pcVar10 = (char *)((int)ppVar11 + uVar34 & ~uVar34);\n    (kwset->obstack).next_free = pcVar10;\n    if ((uint)((int)pcVar37 - (int)p_Var24) < (uint)((int)pcVar10 - (int)p_Var24)) {\n      (kwset->obstack).next_free = pcVar37;\n      pcVar10 = pcVar37;\n    }\n    ptVar38 = kwset->trie;\n    (kwset->obstack).object_base = pcVar10;\n    kwset->shift = ppVar20;\n    ptVar38 = ptVar38->next;\n    if (!bVar1) {\n      iVar44 = 0;\n      do {\n        ppVar11 = &ptVar38->shift;\n        ptVar38 = ptVar38->next;\n        iVar44 = iVar44 + 1;\n        *ppVar20 = *ppVar11;\n        uVar29 = kwset->mind;\n        ppVar20 = ppVar20 + 1;\n      } while (iVar44 < (int)(uVar29 - 1));\n    }\n    bVar15 = kwset->target[uVar29 - 2];\n    if (pbVar43 != (byte *)0x0) {\n      bVar15 = pbVar43[bVar15];\n    }\n    kwset->gc2 = bVar15;\n  }\nLAB_0001e6f8:\n  if (pbVar43 != (byte *)0x0) {\n    pbVar28 = pbVar43 + 0x100;\n    ptVar6 = (trie *)kwset->delta;\n    do {\n      bVar15 = *pbVar43;\n      ptVar38 = (trie *)((int)&ptVar6->accepting + 1);\n      pbVar43 = pbVar43 + 1;\n      *(uchar *)&ptVar6->accepting = delta[bVar15];\n      ptVar6 = ptVar38;\n    } while (pbVar28 != pbVar43);\n  }\n  if (iVar5 == *(int *)puVar3) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n                    /* WARNING: Could not recover jumptable at 0x000209d4. Too many branches */\n                    /* WARNING: Treating indirect jump as call */\n  (*(code *)ptVar38[0x2a].depth)();\n  return;\n}" primitive_type (function_declarator "kwsprep(kwset_t kwset)" identifier (parameter_list "(kwset_t kwset)" ( (parameter_declaration "kwset_t kwset" type_identifier identifier) ))) (compound_statement "{\n  bool bVar1;\n  tree **pptVar2;\n  undefined *puVar3;\n  undefined *puVar4;\n  undefined3 extraout_var;\n  undefined3 extraout_var_00;\n  undefined3 extraout_var_01;\n  undefined3 extraout_var_02;\n  undefined3 extraout_var_03;\n  undefined3 extraout_var_04;\n  undefined3 extraout_var_05;\n  undefined3 extraout_var_06;\n  undefined3 extraout_var_07;\n  undefined3 extraout_var_08;\n  undefined3 extraout_var_09;\n  undefined3 extraout_var_10;\n  undefined3 extraout_var_11;\n  undefined3 extraout_var_12;\n  undefined3 extraout_var_13;\n  undefined3 extraout_var_14;\n  undefined3 extraout_var_15;\n  undefined3 extraout_var_16;\n  undefined3 extraout_var_17;\n  undefined3 extraout_var_18;\n  undefined3 extraout_var_19;\n  undefined3 extraout_var_20;\n  undefined3 extraout_var_21;\n  undefined3 extraout_var_22;\n  undefined3 extraout_var_23;\n  undefined3 extraout_var_24;\n  undefined3 extraout_var_25;\n  undefined3 extraout_var_26;\n  undefined3 extraout_var_27;\n  undefined3 extraout_var_28;\n  undefined3 extraout_var_29;\n  undefined3 extraout_var_30;\n  undefined3 extraout_var_31;\n  undefined3 extraout_var_32;\n  undefined3 extraout_var_33;\n  undefined3 extraout_var_34;\n  undefined3 extraout_var_35;\n  undefined3 extraout_var_36;\n  undefined3 extraout_var_37;\n  undefined3 extraout_var_38;\n  undefined3 extraout_var_39;\n  undefined3 extraout_var_40;\n  undefined3 extraout_var_41;\n  undefined3 extraout_var_42;\n  undefined3 extraout_var_43;\n  undefined3 extraout_var_44;\n  undefined3 extraout_var_45;\n  undefined3 extraout_var_46;\n  undefined3 extraout_var_47;\n  undefined3 extraout_var_48;\n  undefined3 extraout_var_49;\n  int iVar5;\n  trie *ptVar6;\n  uint uVar7;\n  ptrdiff_t pVar8;\n  _Bool _Var14;\n  tree *ptVar9;\n  char *pcVar10;\n  ptrdiff_t *ppVar11;\n  byte bVar15;\n  uchar *puVar12;\n  kwset_t kwset_00;\n  anon_union_4_2_94730108_for_temp aVar13;\n  trie *ptVar16;\n  int iVar17;\n  tree *ptVar18;\n  char *pcVar19;\n  ptrdiff_t *ppVar20;\n  kwset_t pkVar21;\n  kwset_t pkVar22;\n  int iVar23;\n  byte bVar25;\n  byte bVar26;\n  _obstack_chunk *p_Var24;\n  uint uVar27;\n  byte *pbVar28;\n  uint uVar29;\n  kwset_t pkVar30;\n  kwset_t pkVar31;\n  tree *ptVar32;\n  uint uVar33;\n  uint uVar34;\n  uchar *puVar35;\n  tree *ptVar36;\n  char *pcVar37;\n  trie *ptVar38;\n  uint uVar39;\n  tree *ptVar40;\n  tree *ptVar41;\n  trie **pptVar42;\n  byte *pbVar43;\n  uchar *delta;\n  int iVar44;\n  size_t sVar45;\n  tree *ptVar46;\n  tree *ptVar47;\n  tree *ptStack_534;\n  trie *last;\n  trie *nextbuf [256];\n  uchar deltabuf [256];\n  \n  puVar3 = PTR___stack_chk_guard_000564b4;\n  pbVar43 = (byte *)kwset->trans;\n  iVar5 = *(int *)PTR___stack_chk_guard_000564b4;\n  delta = kwset->delta;\n  if (pbVar43 != (byte *)0x0) {\n    delta = deltabuf;\n  }\n  iVar44 = kwset->words;\n  if (iVar44 == 1) {\n    ptVar38 = kwset->trie;\n    last = ptVar38;\n    if (ptVar38 != (trie *)0x0) {\n      do {\n        ptVar40 = ptVar38->links;\n        if (ptVar40 != (tree *)0x0) {\n          ptVar32 = ptVar40->llink;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              ptVar6 = last;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n              }\n              last = ptVar36->trie;\n              ptVar6->next = last;\n            }\n            ptVar6 = ptVar32->trie;\n            last->next = ptVar6;\n            last = ptVar6;\n          }\n          ptVar32 = ptVar40->rlink;\n          ptVar6 = last;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar6 = ptVar41->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 == (tree *)0x0) {\n                ptVar6 = ptVar36->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              else {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,&last);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,&last);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n                last = ptVar36->trie;\n                ptVar6->next = last;\n              }\n            }\n            ptVar6 = ptVar32->trie;\n            last->next = ptVar6;\n          }\n          last = ptVar40->trie;\n          ptVar6->next = last;\n        }\n        ptVar38 = ptVar38->next;\n      } while (ptVar38 != (trie *)0x0);\n    }\n    pcVar37 = (kwset->obstack).chunk_limit;\n    pcVar10 = (kwset->obstack).next_free;\n    uVar29 = kwset->mind;\n    if ((uint)((int)pcVar37 - (int)pcVar10) < uVar29) {\n      _obstack_newchunk(&kwset->obstack,uVar29);\n      puVar35 = (uchar *)(kwset->obstack).object_base;\n      puVar12 = (uchar *)((kwset->obstack).next_free + uVar29);\n      pcVar37 = (kwset->obstack).chunk_limit;\n      uVar29 = kwset->mind;\n      (kwset->obstack).next_free = (char *)puVar12;\n      if (puVar12 == puVar35) goto LAB_00020968;\n    }\n    else {\n      puVar35 = (uchar *)(kwset->obstack).object_base;\n      puVar12 = (uchar *)(pcVar10 + uVar29);\n      (kwset->obstack).next_free = (char *)puVar12;\n      if (puVar12 == puVar35) {\nLAB_00020968:\n        (kwset->obstack).field_0x28 = (kwset->obstack).field_0x28 & 0xbf | 0x40;\n      }\n    }\n    uVar34 = (kwset->obstack).alignment_mask;\n    p_Var24 = (kwset->obstack).chunk;\n    pcVar10 = (char *)((uint)(puVar12 + uVar34) & ~uVar34);\n    (kwset->obstack).next_free = pcVar10;\n    if ((uint)((int)pcVar37 - (int)p_Var24) < (uint)((int)pcVar10 - (int)p_Var24)) {\n      (kwset->obstack).next_free = pcVar37;\n      pcVar10 = pcVar37;\n    }\n    ptVar38 = kwset->trie;\n    (kwset->obstack).object_base = pcVar10;\n    kwset->target = (char *)puVar35;\n    if (0 < (int)uVar29) {\n      *puVar35 = ptVar38->links->label;\n      ptVar38 = ptVar38->next;\n      if (1 < kwset->mind) {\n        iVar17 = 1;\n        do {\n          puVar12 = (uchar *)(kwset->target + iVar17);\n          iVar17 = iVar17 + 1;\n          *puVar12 = ptVar38->links->label;\n          ptVar38 = ptVar38->next;\n        } while (iVar17 < kwset->mind);\n      }\n    }\n    kwset_00 = kwsalloc(kwset->trans);\n    pVar8 = kwset->mind;\n    pcVar10 = kwset->target;\n    kwset_00->kwsexec =\n         (_func_ptrdiff_t_kwset_t_char_ptr_ptrdiff_t_kwsmatch_ptr__Bool *)\n         (PTR_LAB_00056238 + -0x47f8);\n    kwsincr(kwset_00,pcVar10,pVar8);\n    _obstack_free(&kwset->obstack,(void *)0x0);\n    pkVar22 = kwset_00;\n    pkVar31 = kwset;\n    do {\n      pkVar30 = pkVar31;\n      pkVar21 = pkVar22;\n      pkVar22 = (kwset_t)&(pkVar21->obstack).chunk_limit;\n      pkVar31 = (kwset_t)&(pkVar30->obstack).chunk_limit;\n      p_Var24 = (pkVar21->obstack).chunk;\n      pcVar37 = (pkVar21->obstack).object_base;\n      pcVar10 = (pkVar21->obstack).next_free;\n      (pkVar30->obstack).chunk_size = (pkVar21->obstack).chunk_size;\n      (pkVar30->obstack).chunk = p_Var24;\n      (pkVar30->obstack).object_base = pcVar37;\n      (pkVar30->obstack).next_free = pcVar10;\n      puVar4 = PTR_free_000564c0;\n    } while (pkVar22 != (kwset_t)&kwset_00->gc2);\n    aVar13 = (pkVar21->obstack).temp;\n    *(char **)pkVar31 = *(char **)pkVar22;\n    (pkVar30->obstack).temp = aVar13;\n    (*(code *)puVar4)(kwset_00);\n    iVar17 = 0xff;\n    if (kwset->mind < 0x100) {\n      iVar17 = kwset->mind;\n    }\n    (*(code *)PTR_memset_000563f4)(delta,iVar17,0x100);\n    ptVar38 = kwset->trie;\n    last = ptVar38;\n    if (ptVar38 != (trie *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (ptVar38 = ptVar38->next; ptVar38 != (trie *)0x0; ptVar38 = ptVar38->next) {\n      while( true ) {\n        iVar23 = ptVar38->parent->maxshift;\n        iVar17 = ptVar38->maxshift;\n        if (iVar23 < ptVar38->maxshift) {\n          ptVar38->maxshift = iVar23;\n          iVar17 = iVar23;\n        }\n        if (ptVar38->shift <= iVar17) break;\n        ptVar38->shift = iVar17;\n        ptVar38 = ptVar38->next;\n        if (ptVar38 == (trie *)0x0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar17 = 0xff;\n    if (kwset->mind < 0x100) {\n      iVar17 = kwset->mind;\n    }\n    (*(code *)PTR_memset_000563f4)(delta,iVar17,0x100);\n    ptVar38 = kwset->trie;\n    last = ptVar38;\n    if (ptVar38 != (trie *)0x0) {\nLAB_0001d27c:\n      pptVar42 = &last;\n      last = ptVar38;\n      do {\n        ptVar40 = ptVar38->links;\n        if (ptVar40 != (tree *)0x0) {\n          ptVar32 = ptVar40->llink;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              ptVar6 = last;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n              }\n              last = ptVar36->trie;\n              ptVar6->next = last;\n            }\n            ptVar6 = ptVar32->trie;\n            last->next = ptVar6;\n            last = ptVar6;\n          }\n          ptVar32 = ptVar40->rlink;\n          ptVar6 = last;\n          if (ptVar32 != (tree *)0x0) {\n            ptVar36 = ptVar32->llink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                ptVar6 = last;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                }\n                last = ptVar41->trie;\n                ptVar6->next = last;\n              }\n              ptVar6 = ptVar36->trie;\n              last->next = ptVar6;\n              last = ptVar6;\n            }\n            ptVar36 = ptVar32->rlink;\n            if (ptVar36 != (tree *)0x0) {\n              ptVar41 = ptVar36->llink;\n              if (ptVar41 != (tree *)0x0) {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar6 = ptVar41->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              ptVar41 = ptVar36->rlink;\n              if (ptVar41 == (tree *)0x0) {\n                ptVar6 = ptVar36->trie;\n                last->next = ptVar6;\n                last = ptVar6;\n              }\n              else {\n                ptVar46 = ptVar41->llink;\n                if (ptVar46 != (tree *)0x0) {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar6 = ptVar46->trie;\n                  last->next = ptVar6;\n                  last = ptVar6;\n                }\n                ptVar46 = ptVar41->rlink;\n                if (ptVar46 == (tree *)0x0) {\n                  ptVar6 = ptVar41->trie;\n                  last->next = ptVar6;\n                }\n                else {\n                  if (ptVar46->llink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->llink,pptVar42);\n                  }\n                  if (ptVar46->rlink != (tree *)0x0) {\n                    /* WARNING: Subroutine does not return */\n                    enqueue(ptVar46->rlink,pptVar42);\n                  }\n                  ptVar16 = ptVar46->trie;\n                  last->next = ptVar16;\n                  ptVar6 = ptVar41->trie;\n                  ptVar16->next = ptVar6;\n                }\n                last = ptVar36->trie;\n                ptVar6->next = last;\n              }\n        
(translation_unit "void kwsprep(undefined4 *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  byte bVar7;\n  undefined1 *puVar6;\n  int iVar8;\n  undefined4 extraout_v1;\n  int extraout_v1_00;\n  undefined4 extraout_v1_01;\n  int extraout_v1_02;\n  undefined4 extraout_v1_03;\n  int extraout_v1_04;\n  undefined4 extraout_v1_05;\n  int extraout_v1_06;\n  undefined4 extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 extraout_v1_09;\n  int extraout_v1_10;\n  undefined4 extraout_v1_11;\n  int extraout_v1_12;\n  undefined4 extraout_v1_13;\n  int extraout_v1_14;\n  undefined4 extraout_v1_15;\n  int extraout_v1_16;\n  undefined4 extraout_v1_17;\n  int extraout_v1_18;\n  undefined4 extraout_v1_19;\n  int extraout_v1_20;\n  undefined4 extraout_v1_21;\n  int extraout_v1_22;\n  undefined4 extraout_v1_23;\n  int extraout_v1_24;\n  undefined4 extraout_v1_25;\n  int extraout_v1_26;\n  undefined4 extraout_v1_27;\n  int extraout_v1_28;\n  undefined4 extraout_v1_29;\n  int extraout_v1_30;\n  int iVar9;\n  byte bVar10;\n  byte bVar11;\n  uint uVar12;\n  byte *pbVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  undefined4 uVar22;\n  int *piVar23;\n  uint uVar24;\n  int **ppiVar25;\n  undefined4 *puVar26;\n  undefined4 *puVar27;\n  undefined4 *puVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int *piVar33;\n  int *piVar34;\n  int *piVar35;\n  int *piVar36;\n  undefined4 *local_534;\n  int *local_530;\n  undefined4 auStack_52c [256];\n  undefined4 auStack_12c [64];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = (byte *)param_1[0x151];\n  local_2c = *(int *)PTR___stack_chk_guard_000564b4;\n  puVar30 = param_1 + 0xf;\n  if (pbVar29 != (byte *)0x0) {\n    puVar30 = auStack_12c;\n  }\n  iVar31 = param_1[0xb];\n  if (iVar31 == 1) {\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\n      ppiVar25 = &local_530;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          piVar33[3] = (int)local_530;\n        }\n        piVar23 = (int *)piVar23[3];\n      } while (piVar23 != (int *)0x0);\n    }\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    if (uVar21 - param_1[3] < uVar14) {\n      _obstack_newchunk(param_1);\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      uVar21 = param_1[4];\n      uVar14 = param_1[0xd];\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) goto LAB_00020968;\n    }\n    else {\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) {\nLAB_00020968:\n        *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n      }\n    }\n    uVar5 = (uint)(puVar6 + param_1[6]) & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    iVar8 = param_1[0xc];\n    param_1[2] = uVar5;\n    param_1[0x14f] = puVar18;\n    if (0 < (int)uVar14) {\n      *puVar18 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n      iVar8 = *(int *)(iVar8 + 0xc);\n      if (1 < (int)param_1[0xd]) {\n        iVar4 = 1;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x14f] + iVar4);\n          iVar4 = iVar4 + 1;\n          *puVar6 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n          iVar8 = *(int *)(iVar8 + 0xc);\n        } while (iVar4 < (int)param_1[0xd]);\n      }\n    }\n    puVar20 = (undefined4 *)kwsalloc(param_1[0x151]);\n    uVar19 = param_1[0xd];\n    uVar15 = param_1[0x14f];\n    puVar20[0x155] = PTR_LAB_00056238 + -0x47f8;\n    kwsincr(puVar20,uVar15,uVar19);\n    _obstack_free(param_1,0);\n    puVar27 = puVar20;\n    puVar16 = param_1;\n    do {\n      puVar32 = puVar16;\n      puVar28 = puVar27;\n      puVar27 = puVar28 + 4;\n      uVar22 = puVar28[1];\n      uVar19 = puVar28[2];\n      uVar15 = puVar28[3];\n      *puVar32 = *puVar28;\n      puVar32[1] = uVar22;\n      puVar32[2] = uVar19;\n      puVar32[3] = uVar15;\n      puVar3 = PTR_free_000564c0;\n      puVar16 = puVar32 + 4;\n    } while (puVar27 != puVar20 + 0x154);\n    uVar15 = puVar28[5];\n    puVar32[4] = *puVar27;\n    puVar32[5] = uVar15;\n    (*(code *)puVar3)(puVar20);\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (iVar8 = piVar23[3]; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0xc)) {\n      while( true ) {\n        iVar9 = *(int *)(*(int *)(iVar8 + 8) + 0x1c);\n        iVar4 = *(int *)(iVar8 + 0x1c);\n        if (iVar9 < *(int *)(iVar8 + 0x1c)) {\n          *(int *)(iVar8 + 0x1c) = iVar9;\n          iVar4 = iVar9;\n        }\n        if (*(int *)(iVar8 + 0x18) <= iVar4) break;\n        *(int *)(iVar8 + 0x18) = iVar4;\n        iVar8 = *(int *)(iVar8 + 0xc);\n        if (iVar8 == 0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\nLAB_0001d27c:\n      ppiVar25 = &local_530;\n      local_530 = piVar23;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  piVar34 = local_530;\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                    piVar34 = local_530;\n                  }\n                  local_530 = (int *)piVar33[2];\n                  piVar34[3] = (int)local_530;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = piVar23[5];\n          piVar33[3] = (int)local_530;\n          if (puVar27 != (undefined4 *)0x0) {\n            puVar16 = (undefined4 *)*puVar27;\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1,puVar30);\n                    iVar8 = extraout_v1_00;\n                    if (extraout_v1_00 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_00;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_01,puVar30);\n                    iVar8 = extraout_v1_02;\n                    if (extraout_v1_02 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_02;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_03,puVar30);\n                    iVar8 = extraout_v1_04;\n                    if (extraout_v1_04 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_04;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_05,puVar30);\n                    iVar8 = extraout_v1_06;\n                    if (extraout_v1_06 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_06;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_07,puVar30);\n                    iVar8 = extraout_v1_08;\n                    if (extraout_v1_08 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_08;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_09,puVar30);\n                    iVar8 = extraout_v1_10;\n                    if (extraout_v1_10 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_10;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_11,puVar30);\n                    iVar8 = extraout_v1_12;\n                    if (extraout_v1_12 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_12;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_13,puVar30);\n                    iVar8 = extraout_v1_14;\n                    if (extraout_v1_14 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_14;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            puVar16 = (undefined4 *)puVar27[1];\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_15,puVar30);\n                    iVar8 = extraout_v1_16;\n                    if (extraout_v1_16 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_16;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_17,puVar30);\n                    iVar8 = extraout_v1_18;\n                    if (extraout_v1_18 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_18;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_19,puVar30);\n                    iVar8 = extraout_v1_20;\n                    if (extraout_v1_20 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_20;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_21,puVar30);\n                    iVar8 = extraout_v1_22;\n                    if (extraout_v1_22 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_22;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_23,puVar30);\n                    iVar8 = extraout_v1_24;\n                    if (extraout_v1_24 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_24;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_25,puVar30);\n                    iVar8 = extraout_v1_26;\n                    if (extraout_v1_26 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_26;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_27,puVar30);\n                    iVar8 = extraout_v1_28;\n                    if (extraout_v1_28 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_28;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_29,puVar30);\n                    iVar8 = extraout_v1_30;\n                    if (extraout_v1_30 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_30;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3))) {\n              *(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3)) = (byte)iVar8;\n            }\n            puVar27 = (undefined4 *)piVar23[1];\n          }\n        }\n        FUN_0001acd0(puVar27,piVar23[4],param_1[0xc],iVar31 == 1);\n        if (iVar31 == 1) {\n          iVar8 = param_1[0xd];\n          iVar4 = piVar23[4];\n          piVar23[6] = iVar8;\n          piVar23[7] = iVar8;\n          if (iVar4 == 0) goto LAB_0001dfb4;\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = *piVar23;\n          do {\n            if (puVar27 != (undefined4 *)0x0) {\n              puVar16 = (undefined4 *)*puVar27;\n              piVar33 = *(int **)(iVar4 + 4);\n              if (puVar16 == (undefined4 *)0x0) {\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001e8cc:\n                  puVar20 = (undefined4 *)*puVar16;\n                  if (puVar20 == (undefined4 *)0x0) {\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 == (undefined4 *)0x0) {\n                      if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                      bVar10 = *(byte *)(piVar33 + 3);\n                    }\n                    else {\nLAB_0001eaa0:\n                      puVar28 = (undefined4 *)*puVar20;\n                      if (puVar28 != (undefined4 *)0x0) {\n                        puVar32 = (undefined4 *)*puVar28;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 == (int *)0x0) {\n                            if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                            bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fbdc:\n                            bVar10 = *(byte *)(puVar28 + 3);\n                            piVar34 = piVar33;\n                            bVar11 = bVar7;\njoined_r0x0001fbe0:\n                            while (bVar7 != bVar10) {\n                              piVar35 = (int *)piVar34[1];\n                              if (bVar10 < bVar7) {\n                                piVar35 = (int *)*piVar34;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              piVar34 = piVar35;\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            puVar28 = (undefined4 *)puVar20[1];\n                            if (puVar28 != (undefined4 *)0x0) goto LAB_0001efdc;\n                            bVar7 = *(byte *)(puVar20 + 3);\n                            piVar34 = piVar33;\n                            bVar10 = bVar11;\n                            goto joined_r0x0001fb94;\n                          }\nLAB_0001f218:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f8cc;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f764;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f764:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f8cc:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              goto LAB_0001fbdc;\n                            }\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (iVar9 != 0) {\n                            puVar26 = (undefined4 *)puVar32[1];\n                            if (puVar26 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f9c8;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar34 = piVar33;\n                                while (*(byte *)(puVar26 + 3) != bVar10) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar26 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\nLAB_0001f9c8:\n                                piVar34 = piVar33;\n                                bVar10 = bVar7;\n                                while (bVar10 != *(byte *)(puVar32 + 3)) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\n                                piVar34 = (int *)puVar28[1];\n                                if (piVar34 != (int *)0x0) goto LAB_0001f218;\n                                bVar10 = *(byte *)(puVar28 + 3);\n                                piVar34 = piVar33;\n                                bVar11 = bVar7;\n                                goto joined_r0x0001fbe0;\n                              }\n                            }\n                          }\n                        }\nLAB_0001e864:\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar11 = *(byte *)(piVar33 + 3);\n                      }\n                      else {\nLAB_0001efdc:\n                        piVar34 = (int *)*puVar28;\n                        if (piVar34 != (int *)0x0) {\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f918;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f654;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f654:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f918:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f3d4;\n                              bVar10 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar11 = bVar7;\n                              goto joined_r0x00020768;\n                            }\n                          }\n                          goto LAB_0001e864;\n                        }\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar7 = *(byte *)(piVar33 + 3);\n                        }\n                        else {\nLAB_0001f3d4:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            puVar32 = (undefined4 *)piVar34[1];\n                            if (puVar32 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                goto LAB_00020814;\n                              }\n                            }\n                            else {\nLAB_0001fcfc:\n                              iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                bVar7 = bVar10;\n                                piVar35 = piVar33;\n                                while (*(byte *)(puVar32 + 3) != bVar7) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar7) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar7 = *(byte *)(piVar35 + 3);\n                                }\nLAB_00020814:\n                                bVar11 = *(byte *)(piVar34 + 3);\n                                piVar34 = piVar33;\n                                bVar7 = bVar10;\n                                goto joined_r0x00020818;\n                              }\n                            }\n                            goto LAB_0001e864;\n                          }\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 == 0) ||\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                             (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\n                          bVar7 = bVar10;\n                          piVar35 = piVar33;\n                          while (bVar7 != *(byte *)(puVar32 + 3)) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(puVar32 + 3) < bVar7) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar7 = *(byte *)(piVar35 + 3);\n                          }\n                          puVar32 = (undefined4 *)piVar34[1];\n                          if (puVar32 != (undefined4 *)0x0) goto LAB_0001fcfc;\n                          bVar11 = *(byte *)(piVar34 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x00020818:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                        }\n                        bVar10 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar11 = bVar7;\njoined_r0x00020768:\n                        while (bVar10 != bVar7) {\n                          piVar35 = (int *)piVar34[1];\n                          if (bVar10 < bVar7) {\n                            piVar35 = (int *)*piVar34;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          piVar34 = piVar35;\n                          bVar7 = *(byte *)(piVar35 + 3);\n                        }\n                      }\n                      bVar7 = *(byte *)(puVar20 + 3);\n                      piVar34 = piVar33;\n                      bVar10 = bVar11;\njoined_r0x0001fb94:\n                      while (bVar7 != bVar11) {\n                        piVar35 = (int *)piVar34[1];\n                        if (bVar7 < bVar11) {\n                          piVar35 = (int *)*piVar34;\n                        }\n                        if (piVar35 == (int *)0x0) {\n                          iVar9 = piVar23[5];\n                          goto LAB_0001e868;\n                        }\n                        piVar34 = piVar35;\n                        bVar11 = *(byte *)(piVar35 + 3);\n                      }\n                    }\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  else {\n                    puVar28 = (undefined4 *)*puVar20;\n                    if (puVar28 == (undefined4 *)0x0) {\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f374:\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f378;\n                      }\nLAB_0001eb64:\n                      puVar32 = (undefined4 *)*puVar28;\n                      if (puVar32 == (undefined4 *)0x0) {\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001fc3c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x0001fc40:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f374;\n                        }\nLAB_0001f180:\n                        puVar32 = (undefined4 *)*piVar34;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          local_534 = (undefined4 *)piVar34[1];\n                          if (local_534 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001f880;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*local_534);\n                            if (iVar9 != 0) goto LAB_0001f6dc;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar35 = piVar33;\n                            while (bVar7 != *(byte *)(puVar32 + 3)) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 != (undefined4 *)0x0) {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 == 0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\nLAB_0001f6dc:\n                              iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                              if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar35 = piVar33;\n                              while (*(byte *)(local_534 + 3) != bVar7) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(local_534 + 3) < bVar7) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar35 + 3);\n                              }\n                            }\nLAB_0001f880:\n                            piVar35 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(piVar34 + 3) != bVar7) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(piVar34 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            goto LAB_0001fc3c;\n                          }\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faac;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faac:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f180;\n                              bVar11 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              goto joined_r0x0001fc40;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f46c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\n                          goto joined_r0x0001f470;\n                        }\n                      }\n                      else {\nLAB_0001ed6c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001fb44;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001fb44:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f46c;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\n                    bVar7 = bVar10;\n                    piVar34 = piVar33;\n                    while (*(byte *)(puVar32 + 3) != bVar7) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar7) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar7 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ed6c;\n                    bVar11 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\njoined_r0x0001f470:\n                    while (bVar10 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar10) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar10 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001eb64;\n                    bVar11 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar7;\njoined_r0x0001f378:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 != (undefined4 *)0x0) goto LAB_0001eaa0;\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  while (bVar11 != bVar10) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              else {\n                puVar20 = (undefined4 *)*puVar16;\n                if (puVar20 == (undefined4 *)0x0) {\n                  puVar20 = (undefined4 *)puVar16[1];\n                  if (puVar20 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001ef7c:\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                    goto joined_r0x0001ef80;\n                  }\nLAB_0001e974:\n                  puVar28 = (undefined4 *)*puVar20;\n                  if (puVar28 != (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f4cc:\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001f4d0;\n                        }\n                      }\n                      else {\nLAB_0001ee1c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faf8;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar34 = piVar33;\n                              while (bVar10 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faf8:\n                              piVar34 = piVar33;\n                              bVar10 = bVar7;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f4cc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\n                    bVar10 = bVar7;\n                    piVar34 = piVar33;\n                    while (bVar10 != *(byte *)(puVar32 + 3)) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar10) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar10 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ee1c;\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001f4d0:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001ec1c;\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\njoined_r0x0001f32c:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar7 < bVar11) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar11 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001ef7c;\n                  }\n                  puVar28 = (undefined4 *)puVar20[1];\n                  if (puVar28 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar11 = *(byte *)(piVar33 + 3);\nLAB_0001f328:\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\n                    goto joined_r0x0001f32c;\n                  }\nLAB_0001ec1c:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (iVar9 != 0) {\n                      puVar26 = (undefined4 *)puVar32[1];\n                      if (puVar26 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          goto LAB_0001fa14;\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                        if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0))\n                           && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar34 = piVar33;\n                          while (bVar10 != *(byte *)(puVar26 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar26 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\nLAB_0001fa14:\n                          piVar34 = piVar33;\n                          bVar10 = bVar7;\n                          while (bVar10 != *(byte *)(puVar32 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar32 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 != (int *)0x0) goto LAB_0001f0e8;\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001fc8c;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  piVar34 = (int *)puVar28[1];\n                  if (piVar34 == (int *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fc88:\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001fc8c:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001f328;\n                  }\nLAB_0001f0e8:\n                  puVar32 = (undefined4 *)*piVar34;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    local_534 = (undefined4 *)piVar34[1];\n                    if (local_534 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f964:\n                        piVar35 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(piVar34 + 3) != bVar10) {\n                          piVar36 = (int *)*piVar35;\n                          piVar35 = (int *)piVar35[1];\n                          if (*(byte *)(piVar34 + 3) < bVar10) {\n                            piVar35 = piVar36;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar35 + 3);\n                        }\n                        goto LAB_0001fc88;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*local_534);\n                      if (iVar9 != 0) {\nLAB_0001f5cc:\n                        iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                        if ((iVar9 != 0) && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar35 = piVar33;\n                          while (*(byte *)(local_534 + 3) != bVar10) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(local_534 + 3) < bVar10) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f964;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                  bVar10 = bVar7;\n                  piVar35 = piVar33;\n                  while (bVar10 != *(byte *)(puVar32 + 3)) {\n                    piVar36 = (int *)*piVar35;\n                    piVar35 = (int *)piVar35[1];\n                    if (*(byte *)(puVar32 + 3) < bVar10) {\n                      piVar35 = piVar36;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                  local_534 = (undefined4 *)piVar34[1];\n                  if (local_534 == (undefined4 *)0x0) goto LAB_0001f964;\n                  iVar9 = FUN_0001ae90(piVar33,*local_534);\n                  if (iVar9 != 0) goto LAB_0001f5cc;\n                  iVar9 = piVar23[5];\nLAB_0001e868:\n                  iVar9 = iVar9 - *(int *)(iVar4 + 0x14);\n                  if (iVar9 < *(int *)(iVar4 + 0x18)) {\n                    *(int *)(iVar4 + 0x18) = iVar9;\n                  }\n                  goto LAB_0001e884;\n                }\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  iVar9 = FUN_0001ae90(piVar33,*puVar28);\n                  if (iVar9 != 0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        goto LAB_0001ed20;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0))\n                         && (piVar33 != (int *)0x0)) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        bVar10 = bVar7;\n                        piVar34 = piVar33;\n                        while (bVar10 != *(byte *)(puVar32 + 3)) {\n                          iVar9 = *piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar32 + 3) < bVar10) {\n                            piVar34 = (int *)iVar9;\n                          }\n                          if (piVar34 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\nLAB_0001ed20:\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(puVar28 + 3) != bVar10) {\n                          piVar35 = (int *)*piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar28 + 3) < bVar10) {\n                            piVar34 = piVar35;\n                          }\n                          if (piVar34 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\n                        puVar28 = (undefined4 *)puVar20[1];\n                        if (puVar28 != (undefined4 *)0x0) goto LAB_0001ea10;\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f08c;\n                      }\n                    }\n                  }\n                  goto LAB_0001e864;\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001ea10:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f52c:\n                        bVar11 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar7 = bVar10;\n                        goto joined_r0x0001f530;\n                      }\n                    }\n                    else {\nLAB_0001eecc:\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (iVar9 != 0) {\n                        puVar26 = (undefined4 *)puVar32[1];\n                        if (puVar26 == (undefined4 *)0x0) {\n                          if (piVar33 != (int *)0x0) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            goto LAB_0001fa60;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar34 = piVar33;\n                            while (*(byte *)(puVar26 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar26 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\nLAB_0001fa60:\n                            piVar34 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(puVar32 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\n                            goto LAB_0001f52c;\n                          }\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar10 = *(byte *)(piVar33 + 3);\n                  bVar7 = bVar10;\n                  piVar34 = piVar33;\n                  while (*(byte *)(puVar32 + 3) != bVar7) {\n                    piVar35 = (int *)*piVar34;\n                    piVar34 = (int *)piVar34[1];\n                    if (*(byte *)(puVar32 + 3) < bVar7) {\n                      piVar34 = piVar35;\n                    }\n                    if (piVar34 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar7 = *(byte *)(piVar34 + 3);\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) goto LAB_0001eecc;\n                  bVar11 = *(byte *)(puVar28 + 3);\n                  piVar34 = piVar33;\n                  bVar7 = bVar10;\njoined_r0x0001f530:\n                  while (bVar10 != bVar11) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar11 = *(byte *)(puVar20 + 3);\n                piVar34 = piVar33;\n                bVar10 = bVar7;\njoined_r0x0001f08c:\n                while (bVar7 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar7) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar7 = *(byte *)(piVar35 + 3);\n                }\n                puVar20 = (undefined4 *)puVar16[1];\n                if (puVar20 != (undefined4 *)0x0) goto LAB_0001e974;\n                bVar11 = *(byte *)(puVar16 + 3);\n                piVar34 = piVar33;\n                bVar7 = bVar10;\njoined_r0x0001ef80:\n                while (bVar10 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar10) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar10 = *(byte *)(piVar35 + 3);\n                }\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 != (undefined4 *)0x0) goto LAB_0001e8cc;\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              while (bVar10 != bVar7) {\n                piVar34 = (int *)*piVar33;\n                piVar33 = (int *)piVar33[1];\n                if (bVar10 < bVar7) {\n                  piVar33 = piVar34;\n                }\n                if (piVar33 == (int *)0x0) {\n                  iVar9 = piVar23[5];\n                  goto LAB_0001e868;\n                }\n                bVar7 = *(byte *)(piVar33 + 3);\n              }\n            }\nLAB_0001e884:\n            if ((iVar8 != 0) &&\n               (iVar9 = piVar23[5] - *(int *)(iVar4 + 0x14), iVar9 < *(int *)(iVar4 + 0x1c))) {\n              *(int *)(iVar4 + 0x1c) = iVar9;\n            }\n            iVar4 = *(int *)(iVar4 + 0x10);\n          } while (iVar4 != 0);\n          piVar23 = (int *)piVar23[3];\n        }\n        else {\nLAB_0001dfb4:\n          piVar23 = (int *)piVar23[3];\n        }\n      } while (piVar23 != (int *)0x0);\n      if (iVar31 == 1) {\n        piVar23 = (int *)param_1[0xc];\n        goto LAB_000206c8;\n      }\n    }\n  }\nLAB_0001dfc8:\n  if (pbVar29 == (byte *)0x0) {\n    puVar16 = param_1 + 0x4f;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) goto LAB_0001dff8;\nLAB_0001f81c:\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((*piVar23 != 0) && (uVar17 = uVar5, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar14 == uVar5) {\n          uVar17 = uVar14;\n          uVar24 = uVar21;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar17 = 0xffffffff;\n            uVar24 = uVar21;\n          }\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  else {\n    puVar16 = auStack_52c;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) {\nLAB_0001dff8:\n      puVar20 = (undefined4 *)*puVar27;\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar20 = (undefined4 *)puVar27[1];\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar16[*(byte *)(puVar27 + 3)] = puVar27[2];\n      if (pbVar29 == (byte *)0x0) goto LAB_0001f81c;\n    }\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar12 = (uint)pbVar29[uVar5];\n      iVar8 = puVar16[uVar12];\n      *piVar23 = iVar8;\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((iVar8 != 0) && (uVar17 = uVar12, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar12 == uVar14) {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else if ((uVar12 != uVar5) || (uVar17 = uVar14, uVar14 != uVar21)) {\n          uVar17 = 0xffffffff;\n          uVar24 = uVar21;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  param_1[0x152] = uVar17;\n  param_1[0x153] = uVar24;\n  if (iVar31 != 1) goto LAB_0001e6f8;\n  uVar21 = param_1[4];\n  uVar14 = param_1[0xd];\n  if (uVar21 - param_1[3] < uVar14) {\n    _obstack_newchunk(param_1);\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) goto LAB_000209a8;\n  }\n  else {\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) {\nLAB_000209a8:\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n  }\n  uVar5 = iVar31 + param_1[6] & ~param_1[6];\n  param_1[3] = uVar5;\n  if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n    param_1[3] = uVar21;\n    uVar5 = uVar21;\n  }\n  piVar23 = (int *)param_1[0xc];\n  param_1[2] = uVar5;\n  param_1[0x14f] = iVar8;\n  if (-1 < (int)(uVar14 - 1)) {\n    *(undefined1 *)(iVar8 + (uVar14 - 1)) = *(undefined1 *)(piVar23[1] + 0xc);\n    piVar23 = (int *)piVar23[3];\n    for (iVar31 = uVar14 - 2; iVar31 != -1; iVar31 = iVar31 + -1) {\n      *(undefined1 *)(param_1[0x14f] + iVar31) = *(undefined1 *)(piVar23[1] + 0xc);\n      piVar23 = (int *)piVar23[3];\n    }\n    uVar14 = param_1[0xd];\n  }\n  bVar1 = (int)uVar14 < 2;\n  if (!bVar1) {\n    uVar21 = param_1[4];\n    iVar31 = param_1[3];\n    uVar5 = (uVar14 - 1) * 4;\n    if (uVar21 - iVar31 < uVar5) {\n      _obstack_newchunk(param_1,uVar5);\n      uVar14 = param_1[0xd];\n      iVar31 = param_1[3];\n      uVar21 = param_1[4];\n      bVar1 = (int)uVar14 < 2;\n    }\n    piVar33 = (int *)param_1[2];\n    piVar23 = (int *)(iVar31 + uVar5);\n    param_1[3] = piVar23;\n    if (piVar23 == piVar33) {\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n    uVar5 = (int)piVar23 + param_1[6] & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    param_1[2] = uVar5;\n    param_1[0x150] = piVar33;\n    piVar23 = *(int **)(param_1[0xc] + 0xc);\n    if (!bVar1) {\n      iVar31 = 0;\n      do {\n        piVar34 = piVar23 + 6;\n        piVar23 = (int *)piVar23[3];\n        iVar31 = iVar31 + 1;\n        *piVar33 = *piVar34;\n        uVar14 = param_1[0xd];\n        piVar33 = piVar33 + 1;\n      } while (iVar31 < (int)(uVar14 - 1));\n    }\n    bVar7 = *(byte *)(param_1[0x14f] + uVar14 + -2);\n    if (pbVar29 != (byte *)0x0) {\n      bVar7 = pbVar29[bVar7];\n    }\n    *(byte *)(param_1 + 0x154) = bVar7;\n  }\nLAB_0001e6f8:\n  if (pbVar29 != (byte *)0x0) {\n    pbVar13 = pbVar29 + 0x100;\n    piVar33 = param_1 + 0xf;\n    do {\n      bVar7 = *pbVar29;\n      piVar23 = (int *)((int)piVar33 + 1);\n      pbVar29 = pbVar29 + 1;\n      *(undefined1 *)piVar33 = *(undefined1 *)((int)puVar30 + (uint)bVar7);\n      piVar33 = piVar23;\n    } while (pbVar13 != pbVar29);\n  }\n  if (local_2c == *(int *)puVar2) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n                    \n                    \n  (*(code *)piVar23[0x155])();\n  return;\n}\n\n" (function_definition "void kwsprep(undefined4 *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  byte bVar7;\n  undefined1 *puVar6;\n  int iVar8;\n  undefined4 extraout_v1;\n  int extraout_v1_00;\n  undefined4 extraout_v1_01;\n  int extraout_v1_02;\n  undefined4 extraout_v1_03;\n  int extraout_v1_04;\n  undefined4 extraout_v1_05;\n  int extraout_v1_06;\n  undefined4 extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 extraout_v1_09;\n  int extraout_v1_10;\n  undefined4 extraout_v1_11;\n  int extraout_v1_12;\n  undefined4 extraout_v1_13;\n  int extraout_v1_14;\n  undefined4 extraout_v1_15;\n  int extraout_v1_16;\n  undefined4 extraout_v1_17;\n  int extraout_v1_18;\n  undefined4 extraout_v1_19;\n  int extraout_v1_20;\n  undefined4 extraout_v1_21;\n  int extraout_v1_22;\n  undefined4 extraout_v1_23;\n  int extraout_v1_24;\n  undefined4 extraout_v1_25;\n  int extraout_v1_26;\n  undefined4 extraout_v1_27;\n  int extraout_v1_28;\n  undefined4 extraout_v1_29;\n  int extraout_v1_30;\n  int iVar9;\n  byte bVar10;\n  byte bVar11;\n  uint uVar12;\n  byte *pbVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  undefined4 uVar22;\n  int *piVar23;\n  uint uVar24;\n  int **ppiVar25;\n  undefined4 *puVar26;\n  undefined4 *puVar27;\n  undefined4 *puVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int *piVar33;\n  int *piVar34;\n  int *piVar35;\n  int *piVar36;\n  undefined4 *local_534;\n  int *local_530;\n  undefined4 auStack_52c [256];\n  undefined4 auStack_12c [64];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = (byte *)param_1[0x151];\n  local_2c = *(int *)PTR___stack_chk_guard_000564b4;\n  puVar30 = param_1 + 0xf;\n  if (pbVar29 != (byte *)0x0) {\n    puVar30 = auStack_12c;\n  }\n  iVar31 = param_1[0xb];\n  if (iVar31 == 1) {\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\n      ppiVar25 = &local_530;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          piVar33[3] = (int)local_530;\n        }\n        piVar23 = (int *)piVar23[3];\n      } while (piVar23 != (int *)0x0);\n    }\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    if (uVar21 - param_1[3] < uVar14) {\n      _obstack_newchunk(param_1);\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      uVar21 = param_1[4];\n      uVar14 = param_1[0xd];\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) goto LAB_00020968;\n    }\n    else {\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) {\nLAB_00020968:\n        *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n      }\n    }\n    uVar5 = (uint)(puVar6 + param_1[6]) & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    iVar8 = param_1[0xc];\n    param_1[2] = uVar5;\n    param_1[0x14f] = puVar18;\n    if (0 < (int)uVar14) {\n      *puVar18 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n      iVar8 = *(int *)(iVar8 + 0xc);\n      if (1 < (int)param_1[0xd]) {\n        iVar4 = 1;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x14f] + iVar4);\n          iVar4 = iVar4 + 1;\n          *puVar6 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n          iVar8 = *(int *)(iVar8 + 0xc);\n        } while (iVar4 < (int)param_1[0xd]);\n      }\n    }\n    puVar20 = (undefined4 *)kwsalloc(param_1[0x151]);\n    uVar19 = param_1[0xd];\n    uVar15 = param_1[0x14f];\n    puVar20[0x155] = PTR_LAB_00056238 + -0x47f8;\n    kwsincr(puVar20,uVar15,uVar19);\n    _obstack_free(param_1,0);\n    puVar27 = puVar20;\n    puVar16 = param_1;\n    do {\n      puVar32 = puVar16;\n      puVar28 = puVar27;\n      puVar27 = puVar28 + 4;\n      uVar22 = puVar28[1];\n      uVar19 = puVar28[2];\n      uVar15 = puVar28[3];\n      *puVar32 = *puVar28;\n      puVar32[1] = uVar22;\n      puVar32[2] = uVar19;\n      puVar32[3] = uVar15;\n      puVar3 = PTR_free_000564c0;\n      puVar16 = puVar32 + 4;\n    } while (puVar27 != puVar20 + 0x154);\n    uVar15 = puVar28[5];\n    puVar32[4] = *puVar27;\n    puVar32[5] = uVar15;\n    (*(code *)puVar3)(puVar20);\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (iVar8 = piVar23[3]; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0xc)) {\n      while( true ) {\n        iVar9 = *(int *)(*(int *)(iVar8 + 8) + 0x1c);\n        iVar4 = *(int *)(iVar8 + 0x1c);\n        if (iVar9 < *(int *)(iVar8 + 0x1c)) {\n          *(int *)(iVar8 + 0x1c) = iVar9;\n          iVar4 = iVar9;\n        }\n        if (*(int *)(iVar8 + 0x18) <= iVar4) break;\n        *(int *)(iVar8 + 0x18) = iVar4;\n        iVar8 = *(int *)(iVar8 + 0xc);\n        if (iVar8 == 0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\nLAB_0001d27c:\n      ppiVar25 = &local_530;\n      local_530 = piVar23;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  piVar34 = local_530;\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                    piVar34 = local_530;\n                  }\n                  local_530 = (int *)piVar33[2];\n                  piVar34[3] = (int)local_530;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = piVar23[5];\n          piVar33[3] = (int)local_530;\n          if (puVar27 != (undefined4 *)0x0) {\n            puVar16 = (undefined4 *)*puVar27;\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1,puVar30);\n                    iVar8 = extraout_v1_00;\n                    if (extraout_v1_00 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_00;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_01,puVar30);\n                    iVar8 = extraout_v1_02;\n                    if (extraout_v1_02 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_02;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_03,puVar30);\n                    iVar8 = extraout_v1_04;\n                    if (extraout_v1_04 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_04;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_05,puVar30);\n                    iVar8 = extraout_v1_06;\n                    if (extraout_v1_06 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_06;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_07,puVar30);\n                    iVar8 = extraout_v1_08;\n                    if (extraout_v1_08 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_08;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_09,puVar30);\n                    iVar8 = extraout_v1_10;\n                    if (extraout_v1_10 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_10;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_11,puVar30);\n                    iVar8 = extraout_v1_12;\n                    if (extraout_v1_12 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_12;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_13,puVar30);\n                    iVar8 = extraout_v1_14;\n                    if (extraout_v1_14 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_14;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            puVar16 = (undefined4 *)puVar27[1];\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_15,puVar30);\n                    iVar8 = extraout_v1_16;\n                    if (extraout_v1_16 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_16;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_17,puVar30);\n                    iVar8 = extraout_v1_18;\n                    if (extraout_v1_18 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_18;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_19,puVar30);\n                    iVar8 = extraout_v1_20;\n                    if (extraout_v1_20 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_20;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_21,puVar30);\n                    iVar8 = extraout_v1_22;\n                    if (extraout_v1_22 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_22;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_23,puVar30);\n                    iVar8 = extraout_v1_24;\n                    if (extraout_v1_24 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_24;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_25,puVar30);\n                    iVar8 = extraout_v1_26;\n                    if (extraout_v1_26 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_26;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_27,puVar30);\n                    iVar8 = extraout_v1_28;\n                    if (extraout_v1_28 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_28;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_29,puVar30);\n                    iVar8 = extraout_v1_30;\n                    if (extraout_v1_30 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_30;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3))) {\n              *(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3)) = (byte)iVar8;\n            }\n            puVar27 = (undefined4 *)piVar23[1];\n          }\n        }\n        FUN_0001acd0(puVar27,piVar23[4],param_1[0xc],iVar31 == 1);\n        if (iVar31 == 1) {\n          iVar8 = param_1[0xd];\n          iVar4 = piVar23[4];\n          piVar23[6] = iVar8;\n          piVar23[7] = iVar8;\n          if (iVar4 == 0) goto LAB_0001dfb4;\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = *piVar23;\n          do {\n            if (puVar27 != (undefined4 *)0x0) {\n              puVar16 = (undefined4 *)*puVar27;\n              piVar33 = *(int **)(iVar4 + 4);\n              if (puVar16 == (undefined4 *)0x0) {\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001e8cc:\n                  puVar20 = (undefined4 *)*puVar16;\n                  if (puVar20 == (undefined4 *)0x0) {\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 == (undefined4 *)0x0) {\n                      if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                      bVar10 = *(byte *)(piVar33 + 3);\n                    }\n                    else {\nLAB_0001eaa0:\n                      puVar28 = (undefined4 *)*puVar20;\n                      if (puVar28 != (undefined4 *)0x0) {\n                        puVar32 = (undefined4 *)*puVar28;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 == (int *)0x0) {\n                            if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                            bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fbdc:\n                            bVar10 = *(byte *)(puVar28 + 3);\n                            piVar34 = piVar33;\n                            bVar11 = bVar7;\njoined_r0x0001fbe0:\n                            while (bVar7 != bVar10) {\n                              piVar35 = (int *)piVar34[1];\n                              if (bVar10 < bVar7) {\n                                piVar35 = (int *)*piVar34;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              piVar34 = piVar35;\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            puVar28 = (undefined4 *)puVar20[1];\n                            if (puVar28 != (undefined4 *)0x0) goto LAB_0001efdc;\n                            bVar7 = *(byte *)(puVar20 + 3);\n                            piVar34 = piVar33;\n                            bVar10 = bVar11;\n                            goto joined_r0x0001fb94;\n                          }\nLAB_0001f218:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f8cc;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f764;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f764:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f8cc:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              goto LAB_0001fbdc;\n                            }\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (iVar9 != 0) {\n                            puVar26 = (undefined4 *)puVar32[1];\n                            if (puVar26 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f9c8;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar34 = piVar33;\n                                while (*(byte *)(puVar26 + 3) != bVar10) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar26 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\nLAB_0001f9c8:\n                                piVar34 = piVar33;\n                                bVar10 = bVar7;\n                                while (bVar10 != *(byte *)(puVar32 + 3)) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\n                                piVar34 = (int *)puVar28[1];\n                                if (piVar34 != (int *)0x0) goto LAB_0001f218;\n                                bVar10 = *(byte *)(puVar28 + 3);\n                                piVar34 = piVar33;\n                                bVar11 = bVar7;\n                                goto joined_r0x0001fbe0;\n                              }\n                            }\n                          }\n                        }\nLAB_0001e864:\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar11 = *(byte *)(piVar33 + 3);\n                      }\n                      else {\nLAB_0001efdc:\n                        piVar34 = (int *)*puVar28;\n                        if (piVar34 != (int *)0x0) {\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f918;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f654;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f654:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f918:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f3d4;\n                              bVar10 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar11 = bVar7;\n                              goto joined_r0x00020768;\n                            }\n                          }\n                          goto LAB_0001e864;\n                        }\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar7 = *(byte *)(piVar33 + 3);\n                        }\n                        else {\nLAB_0001f3d4:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            puVar32 = (undefined4 *)piVar34[1];\n                            if (puVar32 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                goto LAB_00020814;\n                              }\n                            }\n                            else {\nLAB_0001fcfc:\n                              iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                bVar7 = bVar10;\n                                piVar35 = piVar33;\n                                while (*(byte *)(puVar32 + 3) != bVar7) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar7) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar7 = *(byte *)(piVar35 + 3);\n                                }\nLAB_00020814:\n                                bVar11 = *(byte *)(piVar34 + 3);\n                                piVar34 = piVar33;\n                                bVar7 = bVar10;\n                                goto joined_r0x00020818;\n                              }\n                            }\n                            goto LAB_0001e864;\n                          }\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 == 0) ||\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                             (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\n                          bVar7 = bVar10;\n                          piVar35 = piVar33;\n                          while (bVar7 != *(byte *)(puVar32 + 3)) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(puVar32 + 3) < bVar7) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar7 = *(byte *)(piVar35 + 3);\n                          }\n                          puVar32 = (undefined4 *)piVar34[1];\n                          if (puVar32 != (undefined4 *)0x0) goto LAB_0001fcfc;\n                          bVar11 = *(byte *)(piVar34 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x00020818:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                        }\n                        bVar10 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar11 = bVar7;\njoined_r0x00020768:\n                        while (bVar10 != bVar7) {\n                          piVar35 = (int *)piVar34[1];\n                          if (bVar10 < bVar7) {\n                            piVar35 = (int *)*piVar34;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          piVar34 = piVar35;\n                          bVar7 = *(byte *)(piVar35 + 3);\n                        }\n                      }\n                      bVar7 = *(byte *)(puVar20 + 3);\n                      piVar34 = piVar33;\n                      bVar10 = bVar11;\njoined_r0x0001fb94:\n                      while (bVar7 != bVar11) {\n                        piVar35 = (int *)piVar34[1];\n                        if (bVar7 < bVar11) {\n                          piVar35 = (int *)*piVar34;\n                        }\n                        if (piVar35 == (int *)0x0) {\n                          iVar9 = piVar23[5];\n                          goto LAB_0001e868;\n                        }\n                        piVar34 = piVar35;\n                        bVar11 = *(byte *)(piVar35 + 3);\n                      }\n                    }\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  else {\n                    puVar28 = (undefined4 *)*puVar20;\n                    if (puVar28 == (undefined4 *)0x0) {\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f374:\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f378;\n                      }\nLAB_0001eb64:\n                      puVar32 = (undefined4 *)*puVar28;\n                      if (puVar32 == (undefined4 *)0x0) {\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001fc3c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x0001fc40:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f374;\n                        }\nLAB_0001f180:\n                        puVar32 = (undefined4 *)*piVar34;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          local_534 = (undefined4 *)piVar34[1];\n                          if (local_534 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001f880;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*local_534);\n                            if (iVar9 != 0) goto LAB_0001f6dc;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar35 = piVar33;\n                            while (bVar7 != *(byte *)(puVar32 + 3)) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 != (undefined4 *)0x0) {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 == 0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\nLAB_0001f6dc:\n                              iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                              if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar35 = piVar33;\n                              while (*(byte *)(local_534 + 3) != bVar7) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(local_534 + 3) < bVar7) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar35 + 3);\n                              }\n                            }\nLAB_0001f880:\n                            piVar35 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(piVar34 + 3) != bVar7) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(piVar34 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            goto LAB_0001fc3c;\n                          }\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faac;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faac:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f180;\n                              bVar11 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              goto joined_r0x0001fc40;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f46c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\n                          goto joined_r0x0001f470;\n                        }\n                      }\n                      else {\nLAB_0001ed6c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001fb44;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001fb44:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f46c;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\n                    bVar7 = bVar10;\n                    piVar34 = piVar33;\n                    while (*(byte *)(puVar32 + 3) != bVar7) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar7) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar7 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ed6c;\n                    bVar11 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\njoined_r0x0001f470:\n                    while (bVar10 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar10) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar10 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001eb64;\n                    bVar11 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar7;\njoined_r0x0001f378:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 != (undefined4 *)0x0) goto LAB_0001eaa0;\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  while (bVar11 != bVar10) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              else {\n                puVar20 = (undefined4 *)*puVar16;\n                if (puVar20 == (undefined4 *)0x0) {\n                  puVar20 = (undefined4 *)puVar16[1];\n                  if (puVar20 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001ef7c:\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                    goto joined_r0x0001ef80;\n                  }\nLAB_0001e974:\n                  puVar28 = (undefined4 *)*puVar20;\n                  if (puVar28 != (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f4cc:\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001f4d0;\n                        }\n                      }\n                      else {\nLAB_0001ee1c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faf8;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar34 = piVar33;\n                              while (bVar10 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faf8:\n                              piVar34 = piVar33;\n                              bVar10 = bVar7;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f4cc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\n                    bVar10 = bVar7;\n                    piVar34 = piVar33;\n                    while (bVar10 != *(byte *)(puVar32 + 3)) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar10) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar10 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ee1c;\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001f4d0:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001ec1c;\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\njoined_r0x0001f32c:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar7 < bVar11) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar11 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001ef7c;\n                  }\n                  puVar28 = (undefined4 *)puVar20[1];\n                  if (puVar28 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar11 = *(byte *)(piVar33 + 3);\nLAB_0001f328:\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\n                    goto joined_r0x0001f32c;\n                  }\nLAB_0001ec1c:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (iVar9 != 0) {\n                      puVar26 = (undefined4 *)puVar32[1];\n                      if (puVar26 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          goto LAB_0001fa14;\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                        if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0))\n                           && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar34 = piVar33;\n                          while (bVar10 != *(byte *)(puVar26 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar26 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\nLAB_0001fa14:\n                          piVar34 = piVar33;\n                          bVar10 = bVar7;\n                          while (bVar10 != *(byte *)(puVar32 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar32 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 != (int *)0x0) goto LAB_0001f0e8;\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001fc8c;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  piVar34 = (int *)puVar28[1];\n                  if (piVar34 == (int *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fc88:\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001fc8c:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001f328;\n                  }\nLAB_0001f0e8:\n                  puVar32 = (undefined4 *)*piVar34;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    local_534 = (undefined4 *)piVar34[1];\n                    if (local_534 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f964:\n                        piVar35 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(piVar34 + 3) != bVar10) {\n                          piVar36 = (int *)*piVar35;\n                          piVar35 = (int *)piVar35[1];\n                          if (*(byte *)(piVar34 + 3) < bVar10) {\n                            piVar35 = piVar36;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar35 + 3);\n                        }\n                        goto LAB_0001fc88;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*local_534);\n                      if (iVar9 != 0) {\nLAB_0001f5cc:\n                        iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                        if ((iVar9 != 0) && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar35 = piVar33;\n                          while (*(byte *)(local_534 + 3) != bVar10) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(local_534 + 3) < bVar10) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f964;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                  bVar10 = bVar7;\n                  piVar35 = piVar33;\n                  while (bVar10 != *(byte *)(puVar32 + 3)) {\n                    piVar36 = (int *)*piVar35;\n                    piVar35 = (int *)piVar35[1];\n                    if (*(byte *)(puVar32 + 3) < bVar10) {\n                      piVar35 = piVar36;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                  local_534 = (undefined4 *)piVar34[1];\n                  if (local_534 == (undefined4 *)0x0) goto LAB_0001f964;\n                  iVar9 = FUN_0001ae90(piVar33,*local_534);\n                  if (iVar9 != 0) goto LAB_0001f5cc;\n                  iVar9 = piVar23[5];\nLAB_0001e868:\n                  iVar9 = iVar9 - *(int *)(iVar4 + 0x14);\n                  if (iVar9 < *(int *)(iVar4 + 0x18)) {\n                    *(int *)(iVar4 + 0x18) = iVar9;\n                  }\n                  goto LAB_0001e884;\n                }\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  iVar9 = FUN_0001ae90(piVar33,*puVar28);\n                  if (iVar9 != 0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        goto LAB_0001ed20;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0))\n                         && (piVar33 != (int *)0x0)) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        bVar10 = bVar7;\n                        piVar34 = piVar33;\n                        while (bVar10 != *(byte *)(puVar32 + 3)) {\n                          iVar9 = *piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar32 + 3) < bVar10) {\n                            piVar34 = (int *)iVar9;\n                          }\n                          if (piVar34 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\nLAB_0001ed20:\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(puVar28 + 3) != bVar10) {\n                          piVar35 = (int *)*piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar28 + 3) < bVar10) {\n                            piVar34 = piVar35;\n                          }\n                          if (piVar34 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\n                        puVar28 = (undefined4 *)puVar20[1];\n                        if (puVar28 != (undefined4 *)0x0) goto LAB_0001ea10;\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f08c;\n                      }\n                    }\n                  }\n                  goto LAB_0001e864;\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001ea10:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f52c:\n                        bVar11 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar7 = bVar10;\n                        goto joined_r0x0001f530;\n                      }\n                    }\n                    else {\nLAB_0001eecc:\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (iVar9 != 0) {\n                        puVar26 = (undefined4 *)puVar32[1];\n                        if (puVar26 == (undefined4 *)0x0) {\n                          if (piVar33 != (int *)0x0) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            goto LAB_0001fa60;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar34 = piVar33;\n                            while (*(byte *)(puVar26 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar26 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\nLAB_0001fa60:\n                            piVar34 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(puVar32 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\n                            goto LAB_0001f52c;\n                          }\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar10 = *(byte *)(piVar33 + 3);\n                  bVar7 = bVar10;\n                  piVar34 = piVar33;\n                  while (*(byte *)(puVar32 + 3) != bVar7) {\n                    piVar35 = (int *)*piVar34;\n                    piVar34 = (int *)piVar34[1];\n                    if (*(byte *)(puVar32 + 3) < bVar7) {\n                      piVar34 = piVar35;\n                    }\n                    if (piVar34 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar7 = *(byte *)(piVar34 + 3);\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) goto LAB_0001eecc;\n                  bVar11 = *(byte *)(puVar28 + 3);\n                  piVar34 = piVar33;\n                  bVar7 = bVar10;\njoined_r0x0001f530:\n                  while (bVar10 != bVar11) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar11 = *(byte *)(puVar20 + 3);\n                piVar34 = piVar33;\n                bVar10 = bVar7;\njoined_r0x0001f08c:\n                while (bVar7 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar7) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar7 = *(byte *)(piVar35 + 3);\n                }\n                puVar20 = (undefined4 *)puVar16[1];\n                if (puVar20 != (undefined4 *)0x0) goto LAB_0001e974;\n                bVar11 = *(byte *)(puVar16 + 3);\n                piVar34 = piVar33;\n                bVar7 = bVar10;\njoined_r0x0001ef80:\n                while (bVar10 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar10) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar10 = *(byte *)(piVar35 + 3);\n                }\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 != (undefined4 *)0x0) goto LAB_0001e8cc;\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              while (bVar10 != bVar7) {\n                piVar34 = (int *)*piVar33;\n                piVar33 = (int *)piVar33[1];\n                if (bVar10 < bVar7) {\n                  piVar33 = piVar34;\n                }\n                if (piVar33 == (int *)0x0) {\n                  iVar9 = piVar23[5];\n                  goto LAB_0001e868;\n                }\n                bVar7 = *(byte *)(piVar33 + 3);\n              }\n            }\nLAB_0001e884:\n            if ((iVar8 != 0) &&\n               (iVar9 = piVar23[5] - *(int *)(iVar4 + 0x14), iVar9 < *(int *)(iVar4 + 0x1c))) {\n              *(int *)(iVar4 + 0x1c) = iVar9;\n            }\n            iVar4 = *(int *)(iVar4 + 0x10);\n          } while (iVar4 != 0);\n          piVar23 = (int *)piVar23[3];\n        }\n        else {\nLAB_0001dfb4:\n          piVar23 = (int *)piVar23[3];\n        }\n      } while (piVar23 != (int *)0x0);\n      if (iVar31 == 1) {\n        piVar23 = (int *)param_1[0xc];\n        goto LAB_000206c8;\n      }\n    }\n  }\nLAB_0001dfc8:\n  if (pbVar29 == (byte *)0x0) {\n    puVar16 = param_1 + 0x4f;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) goto LAB_0001dff8;\nLAB_0001f81c:\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((*piVar23 != 0) && (uVar17 = uVar5, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar14 == uVar5) {\n          uVar17 = uVar14;\n          uVar24 = uVar21;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar17 = 0xffffffff;\n            uVar24 = uVar21;\n          }\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  else {\n    puVar16 = auStack_52c;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) {\nLAB_0001dff8:\n      puVar20 = (undefined4 *)*puVar27;\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar20 = (undefined4 *)puVar27[1];\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar16[*(byte *)(puVar27 + 3)] = puVar27[2];\n      if (pbVar29 == (byte *)0x0) goto LAB_0001f81c;\n    }\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar12 = (uint)pbVar29[uVar5];\n      iVar8 = puVar16[uVar12];\n      *piVar23 = iVar8;\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((iVar8 != 0) && (uVar17 = uVar12, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar12 == uVar14) {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else if ((uVar12 != uVar5) || (uVar17 = uVar14, uVar14 != uVar21)) {\n          uVar17 = 0xffffffff;\n          uVar24 = uVar21;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  param_1[0x152] = uVar17;\n  param_1[0x153] = uVar24;\n  if (iVar31 != 1) goto LAB_0001e6f8;\n  uVar21 = param_1[4];\n  uVar14 = param_1[0xd];\n  if (uVar21 - param_1[3] < uVar14) {\n    _obstack_newchunk(param_1);\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) goto LAB_000209a8;\n  }\n  else {\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) {\nLAB_000209a8:\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n  }\n  uVar5 = iVar31 + param_1[6] & ~param_1[6];\n  param_1[3] = uVar5;\n  if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n    param_1[3] = uVar21;\n    uVar5 = uVar21;\n  }\n  piVar23 = (int *)param_1[0xc];\n  param_1[2] = uVar5;\n  param_1[0x14f] = iVar8;\n  if (-1 < (int)(uVar14 - 1)) {\n    *(undefined1 *)(iVar8 + (uVar14 - 1)) = *(undefined1 *)(piVar23[1] + 0xc);\n    piVar23 = (int *)piVar23[3];\n    for (iVar31 = uVar14 - 2; iVar31 != -1; iVar31 = iVar31 + -1) {\n      *(undefined1 *)(param_1[0x14f] + iVar31) = *(undefined1 *)(piVar23[1] + 0xc);\n      piVar23 = (int *)piVar23[3];\n    }\n    uVar14 = param_1[0xd];\n  }\n  bVar1 = (int)uVar14 < 2;\n  if (!bVar1) {\n    uVar21 = param_1[4];\n    iVar31 = param_1[3];\n    uVar5 = (uVar14 - 1) * 4;\n    if (uVar21 - iVar31 < uVar5) {\n      _obstack_newchunk(param_1,uVar5);\n      uVar14 = param_1[0xd];\n      iVar31 = param_1[3];\n      uVar21 = param_1[4];\n      bVar1 = (int)uVar14 < 2;\n    }\n    piVar33 = (int *)param_1[2];\n    piVar23 = (int *)(iVar31 + uVar5);\n    param_1[3] = piVar23;\n    if (piVar23 == piVar33) {\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n    uVar5 = (int)piVar23 + param_1[6] & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    param_1[2] = uVar5;\n    param_1[0x150] = piVar33;\n    piVar23 = *(int **)(param_1[0xc] + 0xc);\n    if (!bVar1) {\n      iVar31 = 0;\n      do {\n        piVar34 = piVar23 + 6;\n        piVar23 = (int *)piVar23[3];\n        iVar31 = iVar31 + 1;\n        *piVar33 = *piVar34;\n        uVar14 = param_1[0xd];\n        piVar33 = piVar33 + 1;\n      } while (iVar31 < (int)(uVar14 - 1));\n    }\n    bVar7 = *(byte *)(param_1[0x14f] + uVar14 + -2);\n    if (pbVar29 != (byte *)0x0) {\n      bVar7 = pbVar29[bVar7];\n    }\n    *(byte *)(param_1 + 0x154) = bVar7;\n  }\nLAB_0001e6f8:\n  if (pbVar29 != (byte *)0x0) {\n    pbVar13 = pbVar29 + 0x100;\n    piVar33 = param_1 + 0xf;\n    do {\n      bVar7 = *pbVar29;\n      piVar23 = (int *)((int)piVar33 + 1);\n      pbVar29 = pbVar29 + 1;\n      *(undefined1 *)piVar33 = *(undefined1 *)((int)puVar30 + (uint)bVar7);\n      piVar33 = piVar23;\n    } while (pbVar13 != pbVar29);\n  }\n  if (local_2c == *(int *)puVar2) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n                    \n                    \n  (*(code *)piVar23[0x155])();\n  return;\n}" primitive_type (function_declarator "kwsprep(undefined4 *param_1)" identifier (parameter_list "(undefined4 *param_1)" ( (parameter_declaration "undefined4 *param_1" type_identifier (pointer_declarator "*param_1" * identifier)) ))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  byte bVar7;\n  undefined1 *puVar6;\n  int iVar8;\n  undefined4 extraout_v1;\n  int extraout_v1_00;\n  undefined4 extraout_v1_01;\n  int extraout_v1_02;\n  undefined4 extraout_v1_03;\n  int extraout_v1_04;\n  undefined4 extraout_v1_05;\n  int extraout_v1_06;\n  undefined4 extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 extraout_v1_09;\n  int extraout_v1_10;\n  undefined4 extraout_v1_11;\n  int extraout_v1_12;\n  undefined4 extraout_v1_13;\n  int extraout_v1_14;\n  undefined4 extraout_v1_15;\n  int extraout_v1_16;\n  undefined4 extraout_v1_17;\n  int extraout_v1_18;\n  undefined4 extraout_v1_19;\n  int extraout_v1_20;\n  undefined4 extraout_v1_21;\n  int extraout_v1_22;\n  undefined4 extraout_v1_23;\n  int extraout_v1_24;\n  undefined4 extraout_v1_25;\n  int extraout_v1_26;\n  undefined4 extraout_v1_27;\n  int extraout_v1_28;\n  undefined4 extraout_v1_29;\n  int extraout_v1_30;\n  int iVar9;\n  byte bVar10;\n  byte bVar11;\n  uint uVar12;\n  byte *pbVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  undefined4 uVar22;\n  int *piVar23;\n  uint uVar24;\n  int **ppiVar25;\n  undefined4 *puVar26;\n  undefined4 *puVar27;\n  undefined4 *puVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int *piVar33;\n  int *piVar34;\n  int *piVar35;\n  int *piVar36;\n  undefined4 *local_534;\n  int *local_530;\n  undefined4 auStack_52c [256];\n  undefined4 auStack_12c [64];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = (byte *)param_1[0x151];\n  local_2c = *(int *)PTR___stack_chk_guard_000564b4;\n  puVar30 = param_1 + 0xf;\n  if (pbVar29 != (byte *)0x0) {\n    puVar30 = auStack_12c;\n  }\n  iVar31 = param_1[0xb];\n  if (iVar31 == 1) {\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\n      ppiVar25 = &local_530;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          piVar33[3] = (int)local_530;\n        }\n        piVar23 = (int *)piVar23[3];\n      } while (piVar23 != (int *)0x0);\n    }\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    if (uVar21 - param_1[3] < uVar14) {\n      _obstack_newchunk(param_1);\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      uVar21 = param_1[4];\n      uVar14 = param_1[0xd];\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) goto LAB_00020968;\n    }\n    else {\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) {\nLAB_00020968:\n        *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n      }\n    }\n    uVar5 = (uint)(puVar6 + param_1[6]) & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    iVar8 = param_1[0xc];\n    param_1[2] = uVar5;\n    param_1[0x14f] = puVar18;\n    if (0 < (int)uVar14) {\n      *puVar18 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n      iVar8 = *(int *)(iVar8 + 0xc);\n      if (1 < (int)param_1[0xd]) {\n        iVar4 = 1;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x14f] + iVar4);\n          iVar4 = iVar4 + 1;\n          *puVar6 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n          iVar8 = *(int *)(iVar8 + 0xc);\n        } while (iVar4 < (int)param_1[0xd]);\n      }\n    }\n    puVar20 = (undefined4 *)kwsalloc(param_1[0x151]);\n    uVar19 = param_1[0xd];\n    uVar15 = param_1[0x14f];\n    puVar20[0x155] = PTR_LAB_00056238 + -0x47f8;\n    kwsincr(puVar20,uVar15,uVar19);\n    _obstack_free(param_1,0);\n    puVar27 = puVar20;\n    puVar16 = param_1;\n    do {\n      puVar32 = puVar16;\n      puVar28 = puVar27;\n      puVar27 = puVar28 + 4;\n      uVar22 = puVar28[1];\n      uVar19 = puVar28[2];\n      uVar15 = puVar28[3];\n      *puVar32 = *puVar28;\n      puVar32[1] = uVar22;\n      puVar32[2] = uVar19;\n      puVar32[3] = uVar15;\n      puVar3 = PTR_free_000564c0;\n      puVar16 = puVar32 + 4;\n    } while (puVar27 != puVar20 + 0x154);\n    uVar15 = puVar28[5];\n    puVar32[4] = *puVar27;\n    puVar32[5] = uVar15;\n    (*(code *)puVar3)(puVar20);\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (iVar8 = piVar23[3]; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0xc)) {\n      while( true ) {\n        iVar9 = *(int *)(*(int *)(iVar8 + 8) + 0x1c);\n        iVar4 = *(int *)(iVar8 + 0x1c);\n        if (iVar9 < *(int *)(iVar8 + 0x1c)) {\n          *(int *)(iVar8 + 0x1c) = iVar9;\n          iVar4 = iVar9;\n        }\n        if (*(int *)(iVar8 + 0x18) <= iVar4) break;\n        *(int *)(iVar8 + 0x18) = iVar4;\n        iVar8 = *(int *)(iVar8 + 0xc);\n        if (iVar8 == 0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\nLAB_0001d27c:\n      ppiVar25 = &local_530;\n      local_530 = piVar23;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  piVar34 = local_530;\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                    piVar34 = local_530;\n                  }\n                  local_530 = (int *)piVar33[2];\n                  piVar34[3] = (int)local_530;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = piVar23[5];\n          piVar33[3] = (int)local_530;\n          if (puVar27 != (undefined4 *)0x0) {\n            puVar16 = (undefined4 *)*puVar27;\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1,puVar30);\n                    iVar8 = extraout_v1_00;\n                    if (extraout_v1_00 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_00;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_01,puVar30);\n                    iVar8 = extraout_v1_02;\n                    if (extraout_v1_02 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_02;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_03,puVar30);\n                    iVar8 = extraout_v1_04;\n                    if (extraout_v1_04 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_04;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_05,puVar30);\n                    iVar8 = extraout_v1_06;\n                    if (extraout_v1_06 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_06;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar
(translation_unit (function_definition TYPE (function_declarator IDENT (parameter_list ( (parameter_declaration TYPE (pointer_declarator * IDENT)) ))) (compound_statement { (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * (pointer_declarator * IDENT)) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE IDENT ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (pointer_declarator * IDENT) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE (array_declarator IDENT [ LIT ]) ;) (declaration TYPE IDENT ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 (assignment_expression IDENT = (pointer_expression & IDENT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;)) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression (call_expression (parenthesized_expression ( IDENT )) (argument_list ( (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) ))) & (unary_expression ~ (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) < (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + 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 LIT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ]))) )) ;) })) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) ))))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT != (binary_expression IDENT + LIT)) )) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (for_statement for ( (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ; (binary_expression IDENT != LIT) ; (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ) (compound_statement { (while_statement while (parenthesized_expression ( BOOL )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) <= IDENT) )) (break_statement break ;)) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (if_statement if (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ LIT ])) < LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , IDENT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (pointer_expression & IDENT)) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) 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 *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) }) (else_clause else (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) != LIT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (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 *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) }))) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )))) = (cast_expression ( (type_descriptor TYPE) ) IDENT)) ;) })) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT < (binary_expression (cast_expression ( (type_descriptor TYPE) ) (parenthesized_expression ( IDENT ))) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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 (cast_expression ( (type_descriptor TYPE) ) IDENT) + (binary_expression (parenthesized_expression ( IDENT )) * (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) })) (expression_statement (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) , (subscript_expression IDENT [ LIT ]) , (binary_expression IDENT == LIT) ))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (do_statement do (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * 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) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) (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) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (goto_statement goto statement_identifier ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) })) }))) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;)) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (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) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT == LIT)) ))) )) || (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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 = (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) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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 = (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) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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 = (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) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) (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) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) (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) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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) ))))) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (goto_statement goto statement_identifier ;) })) }))) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) })) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (goto_statement goto statement_identifier ;) })) }))) })) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT == LIT)) ))) )) || (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }))) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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 = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) (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) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (goto_statement goto statement_identifier ;) })) }))) })) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT == LIT)) ))) )) || (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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) ))))) ;) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) (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) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) (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) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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) ))))) ;) }))) (goto_statement goto statement_identifier ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (goto_statement goto statement_identifier ;) })) })) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT == LIT)) ))) )) || (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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 = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_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 < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = IDENT) ;) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (parenthesized_expression ( (binary_expression IDENT != (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) 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) ))))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }))) })) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression 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) ))))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (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) ))))) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (goto_statement goto statement_identifier ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT != LIT)) ))) )) && (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = IDENT) ;)) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (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) ))))) ;) })) (goto_statement goto statement_identifier ;) })) }))) })) }))) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (pointer_expression * IDENT) )))) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT == LIT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (call_expression IDENT (argument_list ( IDENT , (subscript_expression IDENT [ LIT ]) )))) , (binary_expression IDENT == LIT)) ))) )) || (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (while_statement while (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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_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 = IDENT) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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 = (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) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (labeled_statement statement_identifier : (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) })) (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto 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 = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (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) ))))) ;) }))) (while_statement while (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT < IDENT) )) (compound_statement { (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 (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (goto_statement goto statement_identifier ;) })) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) })) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) - (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))))) , (binary_expression IDENT < (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (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) )))) = IDENT) ;) }))) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) ))))) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) }) (else_clause else (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;)) }))) }) while (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == LIT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (goto_statement goto statement_identifier ;) })) })) }))) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT == (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (goto_statement goto statement_identifier ;)) (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;)) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression (pointer_expression * IDENT) != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) }))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( IDENT , LIT , LIT ))) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;)) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (pointer_expression * IDENT))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( (pointer_expression * IDENT) , IDENT ))) ;) (expression_statement (call_expression IDENT (argument_list ( (subscript_expression IDENT [ LIT ]) , IDENT ))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) ]) = (subscript_expression IDENT [ LIT ])) ;) (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 = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE) ) (subscript_expression IDENT [ IDENT ]))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) (expression_statement (assignment_expression (pointer_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 IDENT != LIT) )) && (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) IDENT)))) ))) )) (compound_statement { (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) })) }) (else_clause else (if_statement if (parenthesized_expression ( (binary_expression (parenthesized_expression ( (binary_expression IDENT != IDENT) )) || (parenthesized_expression ( (comma_expression (assignment_expression IDENT = IDENT) , (binary_expression IDENT != IDENT)) ))) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })))) })) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != LIT) )) ;) })))) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != LIT) )) (goto_statement goto statement_identifier ;)) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (goto_statement goto statement_identifier ;)) }) (else_clause else (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT)) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (labeled_statement statement_identifier : (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;)) })) }))) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression IDENT + (subscript_expression IDENT [ LIT ])) & (unary_expression ~ (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) < (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression LIT < (cast_expression ( (type_descriptor TYPE) ) (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 + (parenthesized_expression ( (binary_expression IDENT - LIT) ))) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (for_statement for ( (assignment_expression IDENT = (binary_expression IDENT - LIT)) ; (binary_expression IDENT != LIT) ; (assignment_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 (subscript_expression IDENT [ LIT ]) + IDENT) )))) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) })) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (parenthesized_expression ( (binary_expression IDENT - LIT) )) * LIT)) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - IDENT) < IDENT) )) (compound_statement { (expression_statement (call_expression IDENT (argument_list ( IDENT , IDENT ))) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) < LIT)) ;) })) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + IDENT) )))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT == IDENT) )) (compound_statement { (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = (binary_expression (binary_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) & LIT) | LIT)) ;) })) (expression_statement (assignment_expression IDENT = (binary_expression (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (subscript_expression IDENT [ LIT ])) & (unary_expression ~ (subscript_expression IDENT [ LIT ])))) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (if_statement if (parenthesized_expression ( (binary_expression (binary_expression IDENT - (subscript_expression IDENT [ LIT ])) < (binary_expression IDENT - (subscript_expression IDENT [ LIT ]))) )) (compound_statement { (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) })) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression (subscript_expression IDENT [ LIT ]) = IDENT) ;) (expression_statement (assignment_expression IDENT = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator * (abstract_pointer_declarator *))) ) (parenthesized_expression ( (binary_expression (subscript_expression IDENT [ LIT ]) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (unary_expression ! IDENT) )) (compound_statement { (expression_statement (assignment_expression IDENT = LIT) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * IDENT) = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ LIT ])) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) }) while (parenthesized_expression ( (binary_expression IDENT < (cast_expression ( (type_descriptor TYPE) ) (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 (binary_expression (subscript_expression IDENT [ LIT ]) + IDENT) + LIT) ))))) ;) (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (subscript_expression IDENT [ IDENT ])) ;) })) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression IDENT + LIT) )))) = IDENT) ;) })) (labeled_statement statement_identifier : (if_statement if (parenthesized_expression ( (binary_expression IDENT != (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) LIT)) )) (compound_statement { (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (do_statement do (compound_statement { (expression_statement (assignment_expression IDENT = (pointer_expression * IDENT)) ;) (expression_statement (assignment_expression IDENT = (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + LIT) )))) ;) (expression_statement (assignment_expression IDENT = (binary_expression IDENT + LIT)) ;) (expression_statement (assignment_expression (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) = (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (parenthesized_expression ( (binary_expression (cast_expression ( (type_descriptor TYPE) ) IDENT) + (cast_expression ( (type_descriptor TYPE) ) IDENT)) ))))) ;) (expression_statement (assignment_expression IDENT = IDENT) ;) }) while (parenthesized_expression ( (binary_expression IDENT != 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 (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) IDENT)) )) (argument_list ( ))) ;) (expression_statement (call_expression (parenthesized_expression ( (pointer_expression * (cast_expression ( (type_descriptor TYPE (abstract_pointer_declarator *)) ) (subscript_expression IDENT [ LIT ]))) )) (argument_list ( ))) ;) (return_statement return ;) })))
(function_definition "void kwsprep(undefined4 *param_1)\n\n{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  byte bVar7;\n  undefined1 *puVar6;\n  int iVar8;\n  undefined4 extraout_v1;\n  int extraout_v1_00;\n  undefined4 extraout_v1_01;\n  int extraout_v1_02;\n  undefined4 extraout_v1_03;\n  int extraout_v1_04;\n  undefined4 extraout_v1_05;\n  int extraout_v1_06;\n  undefined4 extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 extraout_v1_09;\n  int extraout_v1_10;\n  undefined4 extraout_v1_11;\n  int extraout_v1_12;\n  undefined4 extraout_v1_13;\n  int extraout_v1_14;\n  undefined4 extraout_v1_15;\n  int extraout_v1_16;\n  undefined4 extraout_v1_17;\n  int extraout_v1_18;\n  undefined4 extraout_v1_19;\n  int extraout_v1_20;\n  undefined4 extraout_v1_21;\n  int extraout_v1_22;\n  undefined4 extraout_v1_23;\n  int extraout_v1_24;\n  undefined4 extraout_v1_25;\n  int extraout_v1_26;\n  undefined4 extraout_v1_27;\n  int extraout_v1_28;\n  undefined4 extraout_v1_29;\n  int extraout_v1_30;\n  int iVar9;\n  byte bVar10;\n  byte bVar11;\n  uint uVar12;\n  byte *pbVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  undefined4 uVar22;\n  int *piVar23;\n  uint uVar24;\n  int **ppiVar25;\n  undefined4 *puVar26;\n  undefined4 *puVar27;\n  undefined4 *puVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int *piVar33;\n  int *piVar34;\n  int *piVar35;\n  int *piVar36;\n  undefined4 *local_534;\n  int *local_530;\n  undefined4 auStack_52c [256];\n  undefined4 auStack_12c [64];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = (byte *)param_1[0x151];\n  local_2c = *(int *)PTR___stack_chk_guard_000564b4;\n  puVar30 = param_1 + 0xf;\n  if (pbVar29 != (byte *)0x0) {\n    puVar30 = auStack_12c;\n  }\n  iVar31 = param_1[0xb];\n  if (iVar31 == 1) {\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\n      ppiVar25 = &local_530;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          piVar33[3] = (int)local_530;\n        }\n        piVar23 = (int *)piVar23[3];\n      } while (piVar23 != (int *)0x0);\n    }\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    if (uVar21 - param_1[3] < uVar14) {\n      _obstack_newchunk(param_1);\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      uVar21 = param_1[4];\n      uVar14 = param_1[0xd];\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) goto LAB_00020968;\n    }\n    else {\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) {\nLAB_00020968:\n        *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n      }\n    }\n    uVar5 = (uint)(puVar6 + param_1[6]) & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    iVar8 = param_1[0xc];\n    param_1[2] = uVar5;\n    param_1[0x14f] = puVar18;\n    if (0 < (int)uVar14) {\n      *puVar18 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n      iVar8 = *(int *)(iVar8 + 0xc);\n      if (1 < (int)param_1[0xd]) {\n        iVar4 = 1;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x14f] + iVar4);\n          iVar4 = iVar4 + 1;\n          *puVar6 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n          iVar8 = *(int *)(iVar8 + 0xc);\n        } while (iVar4 < (int)param_1[0xd]);\n      }\n    }\n    puVar20 = (undefined4 *)kwsalloc(param_1[0x151]);\n    uVar19 = param_1[0xd];\n    uVar15 = param_1[0x14f];\n    puVar20[0x155] = PTR_LAB_00056238 + -0x47f8;\n    kwsincr(puVar20,uVar15,uVar19);\n    _obstack_free(param_1,0);\n    puVar27 = puVar20;\n    puVar16 = param_1;\n    do {\n      puVar32 = puVar16;\n      puVar28 = puVar27;\n      puVar27 = puVar28 + 4;\n      uVar22 = puVar28[1];\n      uVar19 = puVar28[2];\n      uVar15 = puVar28[3];\n      *puVar32 = *puVar28;\n      puVar32[1] = uVar22;\n      puVar32[2] = uVar19;\n      puVar32[3] = uVar15;\n      puVar3 = PTR_free_000564c0;\n      puVar16 = puVar32 + 4;\n    } while (puVar27 != puVar20 + 0x154);\n    uVar15 = puVar28[5];\n    puVar32[4] = *puVar27;\n    puVar32[5] = uVar15;\n    (*(code *)puVar3)(puVar20);\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (iVar8 = piVar23[3]; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0xc)) {\n      while( true ) {\n        iVar9 = *(int *)(*(int *)(iVar8 + 8) + 0x1c);\n        iVar4 = *(int *)(iVar8 + 0x1c);\n        if (iVar9 < *(int *)(iVar8 + 0x1c)) {\n          *(int *)(iVar8 + 0x1c) = iVar9;\n          iVar4 = iVar9;\n        }\n        if (*(int *)(iVar8 + 0x18) <= iVar4) break;\n        *(int *)(iVar8 + 0x18) = iVar4;\n        iVar8 = *(int *)(iVar8 + 0xc);\n        if (iVar8 == 0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\nLAB_0001d27c:\n      ppiVar25 = &local_530;\n      local_530 = piVar23;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  piVar34 = local_530;\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                    piVar34 = local_530;\n                  }\n                  local_530 = (int *)piVar33[2];\n                  piVar34[3] = (int)local_530;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = piVar23[5];\n          piVar33[3] = (int)local_530;\n          if (puVar27 != (undefined4 *)0x0) {\n            puVar16 = (undefined4 *)*puVar27;\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1,puVar30);\n                    iVar8 = extraout_v1_00;\n                    if (extraout_v1_00 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_00;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_01,puVar30);\n                    iVar8 = extraout_v1_02;\n                    if (extraout_v1_02 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_02;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_03,puVar30);\n                    iVar8 = extraout_v1_04;\n                    if (extraout_v1_04 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_04;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_05,puVar30);\n                    iVar8 = extraout_v1_06;\n                    if (extraout_v1_06 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_06;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_07,puVar30);\n                    iVar8 = extraout_v1_08;\n                    if (extraout_v1_08 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_08;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_09,puVar30);\n                    iVar8 = extraout_v1_10;\n                    if (extraout_v1_10 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_10;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_11,puVar30);\n                    iVar8 = extraout_v1_12;\n                    if (extraout_v1_12 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_12;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_13,puVar30);\n                    iVar8 = extraout_v1_14;\n                    if (extraout_v1_14 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_14;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            puVar16 = (undefined4 *)puVar27[1];\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_15,puVar30);\n                    iVar8 = extraout_v1_16;\n                    if (extraout_v1_16 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_16;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_17,puVar30);\n                    iVar8 = extraout_v1_18;\n                    if (extraout_v1_18 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_18;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_19,puVar30);\n                    iVar8 = extraout_v1_20;\n                    if (extraout_v1_20 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_20;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_21,puVar30);\n                    iVar8 = extraout_v1_22;\n                    if (extraout_v1_22 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_22;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_23,puVar30);\n                    iVar8 = extraout_v1_24;\n                    if (extraout_v1_24 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_24;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_25,puVar30);\n                    iVar8 = extraout_v1_26;\n                    if (extraout_v1_26 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_26;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_27,puVar30);\n                    iVar8 = extraout_v1_28;\n                    if (extraout_v1_28 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_28;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_29,puVar30);\n                    iVar8 = extraout_v1_30;\n                    if (extraout_v1_30 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_30;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3))) {\n              *(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3)) = (byte)iVar8;\n            }\n            puVar27 = (undefined4 *)piVar23[1];\n          }\n        }\n        FUN_0001acd0(puVar27,piVar23[4],param_1[0xc],iVar31 == 1);\n        if (iVar31 == 1) {\n          iVar8 = param_1[0xd];\n          iVar4 = piVar23[4];\n          piVar23[6] = iVar8;\n          piVar23[7] = iVar8;\n          if (iVar4 == 0) goto LAB_0001dfb4;\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = *piVar23;\n          do {\n            if (puVar27 != (undefined4 *)0x0) {\n              puVar16 = (undefined4 *)*puVar27;\n              piVar33 = *(int **)(iVar4 + 4);\n              if (puVar16 == (undefined4 *)0x0) {\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001e8cc:\n                  puVar20 = (undefined4 *)*puVar16;\n                  if (puVar20 == (undefined4 *)0x0) {\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 == (undefined4 *)0x0) {\n                      if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                      bVar10 = *(byte *)(piVar33 + 3);\n                    }\n                    else {\nLAB_0001eaa0:\n                      puVar28 = (undefined4 *)*puVar20;\n                      if (puVar28 != (undefined4 *)0x0) {\n                        puVar32 = (undefined4 *)*puVar28;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 == (int *)0x0) {\n                            if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                            bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fbdc:\n                            bVar10 = *(byte *)(puVar28 + 3);\n                            piVar34 = piVar33;\n                            bVar11 = bVar7;\njoined_r0x0001fbe0:\n                            while (bVar7 != bVar10) {\n                              piVar35 = (int *)piVar34[1];\n                              if (bVar10 < bVar7) {\n                                piVar35 = (int *)*piVar34;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              piVar34 = piVar35;\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            puVar28 = (undefined4 *)puVar20[1];\n                            if (puVar28 != (undefined4 *)0x0) goto LAB_0001efdc;\n                            bVar7 = *(byte *)(puVar20 + 3);\n                            piVar34 = piVar33;\n                            bVar10 = bVar11;\n                            goto joined_r0x0001fb94;\n                          }\nLAB_0001f218:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f8cc;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f764;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f764:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f8cc:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              goto LAB_0001fbdc;\n                            }\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (iVar9 != 0) {\n                            puVar26 = (undefined4 *)puVar32[1];\n                            if (puVar26 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f9c8;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar34 = piVar33;\n                                while (*(byte *)(puVar26 + 3) != bVar10) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar26 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\nLAB_0001f9c8:\n                                piVar34 = piVar33;\n                                bVar10 = bVar7;\n                                while (bVar10 != *(byte *)(puVar32 + 3)) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\n                                piVar34 = (int *)puVar28[1];\n                                if (piVar34 != (int *)0x0) goto LAB_0001f218;\n                                bVar10 = *(byte *)(puVar28 + 3);\n                                piVar34 = piVar33;\n                                bVar11 = bVar7;\n                                goto joined_r0x0001fbe0;\n                              }\n                            }\n                          }\n                        }\nLAB_0001e864:\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar11 = *(byte *)(piVar33 + 3);\n                      }\n                      else {\nLAB_0001efdc:\n                        piVar34 = (int *)*puVar28;\n                        if (piVar34 != (int *)0x0) {\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f918;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f654;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f654:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f918:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f3d4;\n                              bVar10 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar11 = bVar7;\n                              goto joined_r0x00020768;\n                            }\n                          }\n                          goto LAB_0001e864;\n                        }\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar7 = *(byte *)(piVar33 + 3);\n                        }\n                        else {\nLAB_0001f3d4:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            puVar32 = (undefined4 *)piVar34[1];\n                            if (puVar32 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                goto LAB_00020814;\n                              }\n                            }\n                            else {\nLAB_0001fcfc:\n                              iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                bVar7 = bVar10;\n                                piVar35 = piVar33;\n                                while (*(byte *)(puVar32 + 3) != bVar7) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar7) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar7 = *(byte *)(piVar35 + 3);\n                                }\nLAB_00020814:\n                                bVar11 = *(byte *)(piVar34 + 3);\n                                piVar34 = piVar33;\n                                bVar7 = bVar10;\n                                goto joined_r0x00020818;\n                              }\n                            }\n                            goto LAB_0001e864;\n                          }\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 == 0) ||\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                             (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\n                          bVar7 = bVar10;\n                          piVar35 = piVar33;\n                          while (bVar7 != *(byte *)(puVar32 + 3)) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(puVar32 + 3) < bVar7) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar7 = *(byte *)(piVar35 + 3);\n                          }\n                          puVar32 = (undefined4 *)piVar34[1];\n                          if (puVar32 != (undefined4 *)0x0) goto LAB_0001fcfc;\n                          bVar11 = *(byte *)(piVar34 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x00020818:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                        }\n                        bVar10 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar11 = bVar7;\njoined_r0x00020768:\n                        while (bVar10 != bVar7) {\n                          piVar35 = (int *)piVar34[1];\n                          if (bVar10 < bVar7) {\n                            piVar35 = (int *)*piVar34;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          piVar34 = piVar35;\n                          bVar7 = *(byte *)(piVar35 + 3);\n                        }\n                      }\n                      bVar7 = *(byte *)(puVar20 + 3);\n                      piVar34 = piVar33;\n                      bVar10 = bVar11;\njoined_r0x0001fb94:\n                      while (bVar7 != bVar11) {\n                        piVar35 = (int *)piVar34[1];\n                        if (bVar7 < bVar11) {\n                          piVar35 = (int *)*piVar34;\n                        }\n                        if (piVar35 == (int *)0x0) {\n                          iVar9 = piVar23[5];\n                          goto LAB_0001e868;\n                        }\n                        piVar34 = piVar35;\n                        bVar11 = *(byte *)(piVar35 + 3);\n                      }\n                    }\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  else {\n                    puVar28 = (undefined4 *)*puVar20;\n                    if (puVar28 == (undefined4 *)0x0) {\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f374:\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f378;\n                      }\nLAB_0001eb64:\n                      puVar32 = (undefined4 *)*puVar28;\n                      if (puVar32 == (undefined4 *)0x0) {\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001fc3c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x0001fc40:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f374;\n                        }\nLAB_0001f180:\n                        puVar32 = (undefined4 *)*piVar34;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          local_534 = (undefined4 *)piVar34[1];\n                          if (local_534 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001f880;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*local_534);\n                            if (iVar9 != 0) goto LAB_0001f6dc;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar35 = piVar33;\n                            while (bVar7 != *(byte *)(puVar32 + 3)) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 != (undefined4 *)0x0) {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 == 0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\nLAB_0001f6dc:\n                              iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                              if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar35 = piVar33;\n                              while (*(byte *)(local_534 + 3) != bVar7) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(local_534 + 3) < bVar7) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar35 + 3);\n                              }\n                            }\nLAB_0001f880:\n                            piVar35 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(piVar34 + 3) != bVar7) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(piVar34 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            goto LAB_0001fc3c;\n                          }\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faac;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faac:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f180;\n                              bVar11 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              goto joined_r0x0001fc40;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f46c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\n                          goto joined_r0x0001f470;\n                        }\n                      }\n                      else {\nLAB_0001ed6c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001fb44;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001fb44:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f46c;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\n                    bVar7 = bVar10;\n                    piVar34 = piVar33;\n                    while (*(byte *)(puVar32 + 3) != bVar7) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar7) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar7 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ed6c;\n                    bVar11 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\njoined_r0x0001f470:\n                    while (bVar10 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar10) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar10 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001eb64;\n                    bVar11 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar7;\njoined_r0x0001f378:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 != (undefined4 *)0x0) goto LAB_0001eaa0;\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  while (bVar11 != bVar10) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              else {\n                puVar20 = (undefined4 *)*puVar16;\n                if (puVar20 == (undefined4 *)0x0) {\n                  puVar20 = (undefined4 *)puVar16[1];\n                  if (puVar20 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001ef7c:\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                    goto joined_r0x0001ef80;\n                  }\nLAB_0001e974:\n                  puVar28 = (undefined4 *)*puVar20;\n                  if (puVar28 != (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f4cc:\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001f4d0;\n                        }\n                      }\n                      else {\nLAB_0001ee1c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faf8;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar34 = piVar33;\n                              while (bVar10 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faf8:\n                              piVar34 = piVar33;\n                              bVar10 = bVar7;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f4cc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\n                    bVar10 = bVar7;\n                    piVar34 = piVar33;\n                    while (bVar10 != *(byte *)(puVar32 + 3)) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar10) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar10 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ee1c;\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001f4d0:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001ec1c;\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\njoined_r0x0001f32c:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar7 < bVar11) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar11 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001ef7c;\n                  }\n                  puVar28 = (undefined4 *)puVar20[1];\n                  if (puVar28 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar11 = *(byte *)(piVar33 + 3);\nLAB_0001f328:\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\n                    goto joined_r0x0001f32c;\n                  }\nLAB_0001ec1c:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (iVar9 != 0) {\n                      puVar26 = (undefined4 *)puVar32[1];\n                      if (puVar26 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          goto LAB_0001fa14;\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                        if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0))\n                           && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar34 = piVar33;\n                          while (bVar10 != *(byte *)(puVar26 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar26 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\nLAB_0001fa14:\n                          piVar34 = piVar33;\n                          bVar10 = bVar7;\n                          while (bVar10 != *(byte *)(puVar32 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar32 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 != (int *)0x0) goto LAB_0001f0e8;\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001fc8c;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  piVar34 = (int *)puVar28[1];\n                  if (piVar34 == (int *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fc88:\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001fc8c:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001f328;\n                  }\nLAB_0001f0e8:\n                  puVar32 = (undefined4 *)*piVar34;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    local_534 = (undefined4 *)piVar34[1];\n                    if (local_534 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f964:\n                        piVar35 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(piVar34 + 3) != bVar10) {\n                          piVar36 = (int *)*piVar35;\n                          piVar35 = (int *)piVar35[1];\n                          if (*(byte *)(piVar34 + 3) < bVar10) {\n                            piVar35 = piVar36;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar35 + 3);\n                        }\n                        goto LAB_0001fc88;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*local_534);\n                      if (iVar9 != 0) {\nLAB_0001f5cc:\n                        iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                        if ((iVar9 != 0) && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar35 = piVar33;\n                          while (*(byte *)(local_534 + 3) != bVar10) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(local_534 + 3) < bVar10) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f964;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                  bVar10 = bVar7;\n                  piVar35 = piVar33;\n                  while (bVar10 != *(byte *)(puVar32 + 3)) {\n                    piVar36 = (int *)*piVar35;\n                    piVar35 = (int *)piVar35[1];\n                    if (*(byte *)(puVar32 + 3) < bVar10) {\n                      piVar35 = piVar36;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                  local_534 = (undefined4 *)piVar34[1];\n                  if (local_534 == (undefined4 *)0x0) goto LAB_0001f964;\n                  iVar9 = FUN_0001ae90(piVar33,*local_534);\n                  if (iVar9 != 0) goto LAB_0001f5cc;\n                  iVar9 = piVar23[5];\nLAB_0001e868:\n                  iVar9 = iVar9 - *(int *)(iVar4 + 0x14);\n                  if (iVar9 < *(int *)(iVar4 + 0x18)) {\n                    *(int *)(iVar4 + 0x18) = iVar9;\n                  }\n                  goto LAB_0001e884;\n                }\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  iVar9 = FUN_0001ae90(piVar33,*puVar28);\n                  if (iVar9 != 0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        goto LAB_0001ed20;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0))\n                         && (piVar33 != (int *)0x0)) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        bVar10 = bVar7;\n                        piVar34 = piVar33;\n                        while (bVar10 != *(byte *)(puVar32 + 3)) {\n                          iVar9 = *piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar32 + 3) < bVar10) {\n                            piVar34 = (int *)iVar9;\n                          }\n                          if (piVar34 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\nLAB_0001ed20:\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(puVar28 + 3) != bVar10) {\n                          piVar35 = (int *)*piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar28 + 3) < bVar10) {\n                            piVar34 = piVar35;\n                          }\n                          if (piVar34 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\n                        puVar28 = (undefined4 *)puVar20[1];\n                        if (puVar28 != (undefined4 *)0x0) goto LAB_0001ea10;\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f08c;\n                      }\n                    }\n                  }\n                  goto LAB_0001e864;\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001ea10:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f52c:\n                        bVar11 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar7 = bVar10;\n                        goto joined_r0x0001f530;\n                      }\n                    }\n                    else {\nLAB_0001eecc:\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (iVar9 != 0) {\n                        puVar26 = (undefined4 *)puVar32[1];\n                        if (puVar26 == (undefined4 *)0x0) {\n                          if (piVar33 != (int *)0x0) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            goto LAB_0001fa60;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar34 = piVar33;\n                            while (*(byte *)(puVar26 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar26 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\nLAB_0001fa60:\n                            piVar34 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(puVar32 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\n                            goto LAB_0001f52c;\n                          }\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar10 = *(byte *)(piVar33 + 3);\n                  bVar7 = bVar10;\n                  piVar34 = piVar33;\n                  while (*(byte *)(puVar32 + 3) != bVar7) {\n                    piVar35 = (int *)*piVar34;\n                    piVar34 = (int *)piVar34[1];\n                    if (*(byte *)(puVar32 + 3) < bVar7) {\n                      piVar34 = piVar35;\n                    }\n                    if (piVar34 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar7 = *(byte *)(piVar34 + 3);\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) goto LAB_0001eecc;\n                  bVar11 = *(byte *)(puVar28 + 3);\n                  piVar34 = piVar33;\n                  bVar7 = bVar10;\njoined_r0x0001f530:\n                  while (bVar10 != bVar11) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar11 = *(byte *)(puVar20 + 3);\n                piVar34 = piVar33;\n                bVar10 = bVar7;\njoined_r0x0001f08c:\n                while (bVar7 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar7) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar7 = *(byte *)(piVar35 + 3);\n                }\n                puVar20 = (undefined4 *)puVar16[1];\n                if (puVar20 != (undefined4 *)0x0) goto LAB_0001e974;\n                bVar11 = *(byte *)(puVar16 + 3);\n                piVar34 = piVar33;\n                bVar7 = bVar10;\njoined_r0x0001ef80:\n                while (bVar10 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar10) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar10 = *(byte *)(piVar35 + 3);\n                }\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 != (undefined4 *)0x0) goto LAB_0001e8cc;\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              while (bVar10 != bVar7) {\n                piVar34 = (int *)*piVar33;\n                piVar33 = (int *)piVar33[1];\n                if (bVar10 < bVar7) {\n                  piVar33 = piVar34;\n                }\n                if (piVar33 == (int *)0x0) {\n                  iVar9 = piVar23[5];\n                  goto LAB_0001e868;\n                }\n                bVar7 = *(byte *)(piVar33 + 3);\n              }\n            }\nLAB_0001e884:\n            if ((iVar8 != 0) &&\n               (iVar9 = piVar23[5] - *(int *)(iVar4 + 0x14), iVar9 < *(int *)(iVar4 + 0x1c))) {\n              *(int *)(iVar4 + 0x1c) = iVar9;\n            }\n            iVar4 = *(int *)(iVar4 + 0x10);\n          } while (iVar4 != 0);\n          piVar23 = (int *)piVar23[3];\n        }\n        else {\nLAB_0001dfb4:\n          piVar23 = (int *)piVar23[3];\n        }\n      } while (piVar23 != (int *)0x0);\n      if (iVar31 == 1) {\n        piVar23 = (int *)param_1[0xc];\n        goto LAB_000206c8;\n      }\n    }\n  }\nLAB_0001dfc8:\n  if (pbVar29 == (byte *)0x0) {\n    puVar16 = param_1 + 0x4f;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) goto LAB_0001dff8;\nLAB_0001f81c:\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((*piVar23 != 0) && (uVar17 = uVar5, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar14 == uVar5) {\n          uVar17 = uVar14;\n          uVar24 = uVar21;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar17 = 0xffffffff;\n            uVar24 = uVar21;\n          }\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  else {\n    puVar16 = auStack_52c;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) {\nLAB_0001dff8:\n      puVar20 = (undefined4 *)*puVar27;\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar20 = (undefined4 *)puVar27[1];\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar16[*(byte *)(puVar27 + 3)] = puVar27[2];\n      if (pbVar29 == (byte *)0x0) goto LAB_0001f81c;\n    }\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar12 = (uint)pbVar29[uVar5];\n      iVar8 = puVar16[uVar12];\n      *piVar23 = iVar8;\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((iVar8 != 0) && (uVar17 = uVar12, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar12 == uVar14) {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else if ((uVar12 != uVar5) || (uVar17 = uVar14, uVar14 != uVar21)) {\n          uVar17 = 0xffffffff;\n          uVar24 = uVar21;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  param_1[0x152] = uVar17;\n  param_1[0x153] = uVar24;\n  if (iVar31 != 1) goto LAB_0001e6f8;\n  uVar21 = param_1[4];\n  uVar14 = param_1[0xd];\n  if (uVar21 - param_1[3] < uVar14) {\n    _obstack_newchunk(param_1);\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) goto LAB_000209a8;\n  }\n  else {\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) {\nLAB_000209a8:\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n  }\n  uVar5 = iVar31 + param_1[6] & ~param_1[6];\n  param_1[3] = uVar5;\n  if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n    param_1[3] = uVar21;\n    uVar5 = uVar21;\n  }\n  piVar23 = (int *)param_1[0xc];\n  param_1[2] = uVar5;\n  param_1[0x14f] = iVar8;\n  if (-1 < (int)(uVar14 - 1)) {\n    *(undefined1 *)(iVar8 + (uVar14 - 1)) = *(undefined1 *)(piVar23[1] + 0xc);\n    piVar23 = (int *)piVar23[3];\n    for (iVar31 = uVar14 - 2; iVar31 != -1; iVar31 = iVar31 + -1) {\n      *(undefined1 *)(param_1[0x14f] + iVar31) = *(undefined1 *)(piVar23[1] + 0xc);\n      piVar23 = (int *)piVar23[3];\n    }\n    uVar14 = param_1[0xd];\n  }\n  bVar1 = (int)uVar14 < 2;\n  if (!bVar1) {\n    uVar21 = param_1[4];\n    iVar31 = param_1[3];\n    uVar5 = (uVar14 - 1) * 4;\n    if (uVar21 - iVar31 < uVar5) {\n      _obstack_newchunk(param_1,uVar5);\n      uVar14 = param_1[0xd];\n      iVar31 = param_1[3];\n      uVar21 = param_1[4];\n      bVar1 = (int)uVar14 < 2;\n    }\n    piVar33 = (int *)param_1[2];\n    piVar23 = (int *)(iVar31 + uVar5);\n    param_1[3] = piVar23;\n    if (piVar23 == piVar33) {\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n    uVar5 = (int)piVar23 + param_1[6] & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    param_1[2] = uVar5;\n    param_1[0x150] = piVar33;\n    piVar23 = *(int **)(param_1[0xc] + 0xc);\n    if (!bVar1) {\n      iVar31 = 0;\n      do {\n        piVar34 = piVar23 + 6;\n        piVar23 = (int *)piVar23[3];\n        iVar31 = iVar31 + 1;\n        *piVar33 = *piVar34;\n        uVar14 = param_1[0xd];\n        piVar33 = piVar33 + 1;\n      } while (iVar31 < (int)(uVar14 - 1));\n    }\n    bVar7 = *(byte *)(param_1[0x14f] + uVar14 + -2);\n    if (pbVar29 != (byte *)0x0) {\n      bVar7 = pbVar29[bVar7];\n    }\n    *(byte *)(param_1 + 0x154) = bVar7;\n  }\nLAB_0001e6f8:\n  if (pbVar29 != (byte *)0x0) {\n    pbVar13 = pbVar29 + 0x100;\n    piVar33 = param_1 + 0xf;\n    do {\n      bVar7 = *pbVar29;\n      piVar23 = (int *)((int)piVar33 + 1);\n      pbVar29 = pbVar29 + 1;\n      *(undefined1 *)piVar33 = *(undefined1 *)((int)puVar30 + (uint)bVar7);\n      piVar33 = piVar23;\n    } while (pbVar13 != pbVar29);\n  }\n  if (local_2c == *(int *)puVar2) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n                    \n                    \n  (*(code *)piVar23[0x155])();\n  return;\n}" (primitive_type "void") (function_declarator "kwsprep(undefined4 *param_1)" (identifier "kwsprep") (parameter_list "(undefined4 *param_1)" (( "(") (parameter_declaration "undefined4 *param_1" (type_identifier "undefined4") (pointer_declarator "*param_1" (* "*") (identifier "param_1"))) () ")"))) (compound_statement "{\n  bool bVar1;\n  undefined *puVar2;\n  undefined *puVar3;\n  int iVar4;\n  uint uVar5;\n  byte bVar7;\n  undefined1 *puVar6;\n  int iVar8;\n  undefined4 extraout_v1;\n  int extraout_v1_00;\n  undefined4 extraout_v1_01;\n  int extraout_v1_02;\n  undefined4 extraout_v1_03;\n  int extraout_v1_04;\n  undefined4 extraout_v1_05;\n  int extraout_v1_06;\n  undefined4 extraout_v1_07;\n  int extraout_v1_08;\n  undefined4 extraout_v1_09;\n  int extraout_v1_10;\n  undefined4 extraout_v1_11;\n  int extraout_v1_12;\n  undefined4 extraout_v1_13;\n  int extraout_v1_14;\n  undefined4 extraout_v1_15;\n  int extraout_v1_16;\n  undefined4 extraout_v1_17;\n  int extraout_v1_18;\n  undefined4 extraout_v1_19;\n  int extraout_v1_20;\n  undefined4 extraout_v1_21;\n  int extraout_v1_22;\n  undefined4 extraout_v1_23;\n  int extraout_v1_24;\n  undefined4 extraout_v1_25;\n  int extraout_v1_26;\n  undefined4 extraout_v1_27;\n  int extraout_v1_28;\n  undefined4 extraout_v1_29;\n  int extraout_v1_30;\n  int iVar9;\n  byte bVar10;\n  byte bVar11;\n  uint uVar12;\n  byte *pbVar13;\n  uint uVar14;\n  undefined4 uVar15;\n  undefined4 *puVar16;\n  uint uVar17;\n  undefined1 *puVar18;\n  undefined4 uVar19;\n  undefined4 *puVar20;\n  uint uVar21;\n  undefined4 uVar22;\n  int *piVar23;\n  uint uVar24;\n  int **ppiVar25;\n  undefined4 *puVar26;\n  undefined4 *puVar27;\n  undefined4 *puVar28;\n  byte *pbVar29;\n  undefined4 *puVar30;\n  int iVar31;\n  undefined4 *puVar32;\n  int *piVar33;\n  int *piVar34;\n  int *piVar35;\n  int *piVar36;\n  undefined4 *local_534;\n  int *local_530;\n  undefined4 auStack_52c [256];\n  undefined4 auStack_12c [64];\n  int local_2c;\n  \n  puVar2 = PTR___stack_chk_guard_000564b4;\n  pbVar29 = (byte *)param_1[0x151];\n  local_2c = *(int *)PTR___stack_chk_guard_000564b4;\n  puVar30 = param_1 + 0xf;\n  if (pbVar29 != (byte *)0x0) {\n    puVar30 = auStack_12c;\n  }\n  iVar31 = param_1[0xb];\n  if (iVar31 == 1) {\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\n      ppiVar25 = &local_530;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          piVar33[3] = (int)local_530;\n        }\n        piVar23 = (int *)piVar23[3];\n      } while (piVar23 != (int *)0x0);\n    }\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    if (uVar21 - param_1[3] < uVar14) {\n      _obstack_newchunk(param_1);\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      uVar21 = param_1[4];\n      uVar14 = param_1[0xd];\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) goto LAB_00020968;\n    }\n    else {\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) {\nLAB_00020968:\n        *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n      }\n    }\n    uVar5 = (uint)(puVar6 + param_1[6]) & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    iVar8 = param_1[0xc];\n    param_1[2] = uVar5;\n    param_1[0x14f] = puVar18;\n    if (0 < (int)uVar14) {\n      *puVar18 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n      iVar8 = *(int *)(iVar8 + 0xc);\n      if (1 < (int)param_1[0xd]) {\n        iVar4 = 1;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x14f] + iVar4);\n          iVar4 = iVar4 + 1;\n          *puVar6 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n          iVar8 = *(int *)(iVar8 + 0xc);\n        } while (iVar4 < (int)param_1[0xd]);\n      }\n    }\n    puVar20 = (undefined4 *)kwsalloc(param_1[0x151]);\n    uVar19 = param_1[0xd];\n    uVar15 = param_1[0x14f];\n    puVar20[0x155] = PTR_LAB_00056238 + -0x47f8;\n    kwsincr(puVar20,uVar15,uVar19);\n    _obstack_free(param_1,0);\n    puVar27 = puVar20;\n    puVar16 = param_1;\n    do {\n      puVar32 = puVar16;\n      puVar28 = puVar27;\n      puVar27 = puVar28 + 4;\n      uVar22 = puVar28[1];\n      uVar19 = puVar28[2];\n      uVar15 = puVar28[3];\n      *puVar32 = *puVar28;\n      puVar32[1] = uVar22;\n      puVar32[2] = uVar19;\n      puVar32[3] = uVar15;\n      puVar3 = PTR_free_000564c0;\n      puVar16 = puVar32 + 4;\n    } while (puVar27 != puVar20 + 0x154);\n    uVar15 = puVar28[5];\n    puVar32[4] = *puVar27;\n    puVar32[5] = uVar15;\n    (*(code *)puVar3)(puVar20);\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (iVar8 = piVar23[3]; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0xc)) {\n      while( true ) {\n        iVar9 = *(int *)(*(int *)(iVar8 + 8) + 0x1c);\n        iVar4 = *(int *)(iVar8 + 0x1c);\n        if (iVar9 < *(int *)(iVar8 + 0x1c)) {\n          *(int *)(iVar8 + 0x1c) = iVar9;\n          iVar4 = iVar9;\n        }\n        if (*(int *)(iVar8 + 0x18) <= iVar4) break;\n        *(int *)(iVar8 + 0x18) = iVar4;\n        iVar8 = *(int *)(iVar8 + 0xc);\n        if (iVar8 == 0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\nLAB_0001d27c:\n      ppiVar25 = &local_530;\n      local_530 = piVar23;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  piVar34 = local_530;\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                    piVar34 = local_530;\n                  }\n                  local_530 = (int *)piVar33[2];\n                  piVar34[3] = (int)local_530;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = piVar23[5];\n          piVar33[3] = (int)local_530;\n          if (puVar27 != (undefined4 *)0x0) {\n            puVar16 = (undefined4 *)*puVar27;\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1,puVar30);\n                    iVar8 = extraout_v1_00;\n                    if (extraout_v1_00 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_00;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_01,puVar30);\n                    iVar8 = extraout_v1_02;\n                    if (extraout_v1_02 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_02;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_03,puVar30);\n                    iVar8 = extraout_v1_04;\n                    if (extraout_v1_04 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_04;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_05,puVar30);\n                    iVar8 = extraout_v1_06;\n                    if (extraout_v1_06 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_06;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_07,puVar30);\n                    iVar8 = extraout_v1_08;\n                    if (extraout_v1_08 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_08;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_09,puVar30);\n                    iVar8 = extraout_v1_10;\n                    if (extraout_v1_10 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_10;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_11,puVar30);\n                    iVar8 = extraout_v1_12;\n                    if (extraout_v1_12 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_12;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_13,puVar30);\n                    iVar8 = extraout_v1_14;\n                    if (extraout_v1_14 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_14;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            puVar16 = (undefined4 *)puVar27[1];\n            if (puVar16 != (undefined4 *)0x0) {\n              puVar20 = (undefined4 *)*puVar16;\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_15,puVar30);\n                    iVar8 = extraout_v1_16;\n                    if (extraout_v1_16 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_16;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_17,puVar30);\n                    iVar8 = extraout_v1_18;\n                    if (extraout_v1_18 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_18;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_19,puVar30);\n                    iVar8 = extraout_v1_20;\n                    if (extraout_v1_20 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_20;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_21,puVar30);\n                    iVar8 = extraout_v1_22;\n                    if (extraout_v1_22 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_22;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              puVar20 = (undefined4 *)puVar16[1];\n              if (puVar20 != (undefined4 *)0x0) {\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_23,puVar30);\n                    iVar8 = extraout_v1_24;\n                    if (extraout_v1_24 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_24;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_25,puVar30);\n                    iVar8 = extraout_v1_26;\n                    if (extraout_v1_26 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_26;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 != (undefined4 *)0x0) {\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_27,puVar30);\n                    iVar8 = extraout_v1_28;\n                    if (extraout_v1_28 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_28;\n                    }\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) {\n                    FUN_0001adec(*puVar32,iVar8,puVar30);\n                    FUN_0001adec(puVar32[1],extraout_v1_29,puVar30);\n                    iVar8 = extraout_v1_30;\n                    if (extraout_v1_30 <\n                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {\n                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_30;\n                    }\n                  }\n                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {\n                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;\n                  }\n                }\n                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {\n                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;\n                }\n              }\n              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {\n                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;\n              }\n            }\n            if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3))) {\n              *(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3)) = (byte)iVar8;\n            }\n            puVar27 = (undefined4 *)piVar23[1];\n          }\n        }\n        FUN_0001acd0(puVar27,piVar23[4],param_1[0xc],iVar31 == 1);\n        if (iVar31 == 1) {\n          iVar8 = param_1[0xd];\n          iVar4 = piVar23[4];\n          piVar23[6] = iVar8;\n          piVar23[7] = iVar8;\n          if (iVar4 == 0) goto LAB_0001dfb4;\n          puVar27 = (undefined4 *)piVar23[1];\n          iVar8 = *piVar23;\n          do {\n            if (puVar27 != (undefined4 *)0x0) {\n              puVar16 = (undefined4 *)*puVar27;\n              piVar33 = *(int **)(iVar4 + 4);\n              if (puVar16 == (undefined4 *)0x0) {\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001e8cc:\n                  puVar20 = (undefined4 *)*puVar16;\n                  if (puVar20 == (undefined4 *)0x0) {\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 == (undefined4 *)0x0) {\n                      if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                      bVar10 = *(byte *)(piVar33 + 3);\n                    }\n                    else {\nLAB_0001eaa0:\n                      puVar28 = (undefined4 *)*puVar20;\n                      if (puVar28 != (undefined4 *)0x0) {\n                        puVar32 = (undefined4 *)*puVar28;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 == (int *)0x0) {\n                            if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                            bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fbdc:\n                            bVar10 = *(byte *)(puVar28 + 3);\n                            piVar34 = piVar33;\n                            bVar11 = bVar7;\njoined_r0x0001fbe0:\n                            while (bVar7 != bVar10) {\n                              piVar35 = (int *)piVar34[1];\n                              if (bVar10 < bVar7) {\n                                piVar35 = (int *)*piVar34;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              piVar34 = piVar35;\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            puVar28 = (undefined4 *)puVar20[1];\n                            if (puVar28 != (undefined4 *)0x0) goto LAB_0001efdc;\n                            bVar7 = *(byte *)(puVar20 + 3);\n                            piVar34 = piVar33;\n                            bVar10 = bVar11;\n                            goto joined_r0x0001fb94;\n                          }\nLAB_0001f218:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f8cc;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f764;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f764:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f8cc:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              goto LAB_0001fbdc;\n                            }\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (iVar9 != 0) {\n                            puVar26 = (undefined4 *)puVar32[1];\n                            if (puVar26 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f9c8;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar34 = piVar33;\n                                while (*(byte *)(puVar26 + 3) != bVar10) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar26 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\nLAB_0001f9c8:\n                                piVar34 = piVar33;\n                                bVar10 = bVar7;\n                                while (bVar10 != *(byte *)(puVar32 + 3)) {\n                                  piVar35 = (int *)*piVar34;\n                                  piVar34 = (int *)piVar34[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar10) {\n                                    piVar34 = piVar35;\n                                  }\n                                  if (piVar34 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar34 + 3);\n                                }\n                                piVar34 = (int *)puVar28[1];\n                                if (piVar34 != (int *)0x0) goto LAB_0001f218;\n                                bVar10 = *(byte *)(puVar28 + 3);\n                                piVar34 = piVar33;\n                                bVar11 = bVar7;\n                                goto joined_r0x0001fbe0;\n                              }\n                            }\n                          }\n                        }\nLAB_0001e864:\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar11 = *(byte *)(piVar33 + 3);\n                      }\n                      else {\nLAB_0001efdc:\n                        piVar34 = (int *)*puVar28;\n                        if (piVar34 != (int *)0x0) {\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                goto LAB_0001f918;\n                              }\n                            }\n                            else {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 != 0) goto LAB_0001f654;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar35 = piVar33;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              local_534 = (undefined4 *)piVar34[1];\n                              if (local_534 != (undefined4 *)0x0) {\n                                iVar9 = FUN_0001ae90(piVar33,*local_534);\n                                if (iVar9 == 0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\nLAB_0001f654:\n                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                                bVar7 = *(byte *)(piVar33 + 3);\n                                bVar10 = bVar7;\n                                piVar35 = piVar33;\n                                while (bVar10 != *(byte *)(local_534 + 3)) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(local_534 + 3) < bVar10) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar10 = *(byte *)(piVar35 + 3);\n                                }\n                              }\nLAB_0001f918:\n                              piVar35 = piVar33;\n                              bVar10 = bVar7;\n                              while (bVar10 != *(byte *)(piVar34 + 3)) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(piVar34 + 3) < bVar10) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar35 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f3d4;\n                              bVar10 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar11 = bVar7;\n                              goto joined_r0x00020768;\n                            }\n                          }\n                          goto LAB_0001e864;\n                        }\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar7 = *(byte *)(piVar33 + 3);\n                        }\n                        else {\nLAB_0001f3d4:\n                          puVar32 = (undefined4 *)*piVar34;\n                          if (puVar32 == (undefined4 *)0x0) {\n                            puVar32 = (undefined4 *)piVar34[1];\n                            if (puVar32 == (undefined4 *)0x0) {\n                              if (piVar33 != (int *)0x0) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                goto LAB_00020814;\n                              }\n                            }\n                            else {\nLAB_0001fcfc:\n                              iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                              if (((iVar9 != 0) &&\n                                  (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                                 (piVar33 != (int *)0x0)) {\n                                bVar10 = *(byte *)(piVar33 + 3);\n                                bVar7 = bVar10;\n                                piVar35 = piVar33;\n                                while (*(byte *)(puVar32 + 3) != bVar7) {\n                                  piVar36 = (int *)*piVar35;\n                                  piVar35 = (int *)piVar35[1];\n                                  if (*(byte *)(puVar32 + 3) < bVar7) {\n                                    piVar35 = piVar36;\n                                  }\n                                  if (piVar35 == (int *)0x0) {\n                                    iVar9 = piVar23[5];\n                                    goto LAB_0001e868;\n                                  }\n                                  bVar7 = *(byte *)(piVar35 + 3);\n                                }\nLAB_00020814:\n                                bVar11 = *(byte *)(piVar34 + 3);\n                                piVar34 = piVar33;\n                                bVar7 = bVar10;\n                                goto joined_r0x00020818;\n                              }\n                            }\n                            goto LAB_0001e864;\n                          }\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 == 0) ||\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                             (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\n                          bVar7 = bVar10;\n                          piVar35 = piVar33;\n                          while (bVar7 != *(byte *)(puVar32 + 3)) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(puVar32 + 3) < bVar7) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar7 = *(byte *)(piVar35 + 3);\n                          }\n                          puVar32 = (undefined4 *)piVar34[1];\n                          if (puVar32 != (undefined4 *)0x0) goto LAB_0001fcfc;\n                          bVar11 = *(byte *)(piVar34 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x00020818:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                        }\n                        bVar10 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar11 = bVar7;\njoined_r0x00020768:\n                        while (bVar10 != bVar7) {\n                          piVar35 = (int *)piVar34[1];\n                          if (bVar10 < bVar7) {\n                            piVar35 = (int *)*piVar34;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          piVar34 = piVar35;\n                          bVar7 = *(byte *)(piVar35 + 3);\n                        }\n                      }\n                      bVar7 = *(byte *)(puVar20 + 3);\n                      piVar34 = piVar33;\n                      bVar10 = bVar11;\njoined_r0x0001fb94:\n                      while (bVar7 != bVar11) {\n                        piVar35 = (int *)piVar34[1];\n                        if (bVar7 < bVar11) {\n                          piVar35 = (int *)*piVar34;\n                        }\n                        if (piVar35 == (int *)0x0) {\n                          iVar9 = piVar23[5];\n                          goto LAB_0001e868;\n                        }\n                        piVar34 = piVar35;\n                        bVar11 = *(byte *)(piVar35 + 3);\n                      }\n                    }\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  else {\n                    puVar28 = (undefined4 *)*puVar20;\n                    if (puVar28 == (undefined4 *)0x0) {\n                      puVar28 = (undefined4 *)puVar20[1];\n                      if (puVar28 == (undefined4 *)0x0) {\n                        if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f374:\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f378;\n                      }\nLAB_0001eb64:\n                      puVar32 = (undefined4 *)*puVar28;\n                      if (puVar32 == (undefined4 *)0x0) {\n                        piVar34 = (int *)puVar28[1];\n                        if (piVar34 == (int *)0x0) {\n                          if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001fc3c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\njoined_r0x0001fc40:\n                          while (bVar10 != bVar11) {\n                            piVar35 = (int *)piVar34[1];\n                            if (bVar11 < bVar10) {\n                              piVar35 = (int *)*piVar34;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            piVar34 = piVar35;\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f374;\n                        }\nLAB_0001f180:\n                        puVar32 = (undefined4 *)*piVar34;\n                        if (puVar32 == (undefined4 *)0x0) {\n                          local_534 = (undefined4 *)piVar34[1];\n                          if (local_534 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001f880;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*local_534);\n                            if (iVar9 != 0) goto LAB_0001f6dc;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar35 = piVar33;\n                            while (bVar7 != *(byte *)(puVar32 + 3)) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            local_534 = (undefined4 *)piVar34[1];\n                            if (local_534 != (undefined4 *)0x0) {\n                              iVar9 = FUN_0001ae90(piVar33,*local_534);\n                              if (iVar9 == 0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\nLAB_0001f6dc:\n                              iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                              if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar35 = piVar33;\n                              while (*(byte *)(local_534 + 3) != bVar7) {\n                                piVar36 = (int *)*piVar35;\n                                piVar35 = (int *)piVar35[1];\n                                if (*(byte *)(local_534 + 3) < bVar7) {\n                                  piVar35 = piVar36;\n                                }\n                                if (piVar35 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar35 + 3);\n                              }\n                            }\nLAB_0001f880:\n                            piVar35 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(piVar34 + 3) != bVar7) {\n                              piVar36 = (int *)*piVar35;\n                              piVar35 = (int *)piVar35[1];\n                              if (*(byte *)(piVar34 + 3) < bVar7) {\n                                piVar35 = piVar36;\n                              }\n                              if (piVar35 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar35 + 3);\n                            }\n                            goto LAB_0001fc3c;\n                          }\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faac;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faac:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              piVar34 = (int *)puVar28[1];\n                              if (piVar34 != (int *)0x0) goto LAB_0001f180;\n                              bVar11 = *(byte *)(puVar28 + 3);\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              goto joined_r0x0001fc40;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f46c:\n                          bVar11 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar7 = bVar10;\n                          goto joined_r0x0001f470;\n                        }\n                      }\n                      else {\nLAB_0001ed6c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001fb44;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar10 = *(byte *)(piVar33 + 3);\n                              bVar7 = bVar10;\n                              piVar34 = piVar33;\n                              while (bVar7 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001fb44:\n                              piVar34 = piVar33;\n                              bVar7 = bVar10;\n                              while (*(byte *)(puVar32 + 3) != bVar7) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar7) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar7 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f46c;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\n                    bVar7 = bVar10;\n                    piVar34 = piVar33;\n                    while (*(byte *)(puVar32 + 3) != bVar7) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar7) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar7 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ed6c;\n                    bVar11 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\njoined_r0x0001f470:\n                    while (bVar10 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar10) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar10 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001eb64;\n                    bVar11 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar7;\njoined_r0x0001f378:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar11 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar20 = (undefined4 *)puVar16[1];\n                    if (puVar20 != (undefined4 *)0x0) goto LAB_0001eaa0;\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                  }\n                  while (bVar11 != bVar10) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              else {\n                puVar20 = (undefined4 *)*puVar16;\n                if (puVar20 == (undefined4 *)0x0) {\n                  puVar20 = (undefined4 *)puVar16[1];\n                  if (puVar20 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001ef7c:\n                    bVar11 = *(byte *)(puVar16 + 3);\n                    piVar34 = piVar33;\n                    bVar7 = bVar10;\n                    goto joined_r0x0001ef80;\n                  }\nLAB_0001e974:\n                  puVar28 = (undefined4 *)*puVar20;\n                  if (puVar28 != (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)*puVar28;\n                    if (puVar32 == (undefined4 *)0x0) {\n                      puVar32 = (undefined4 *)puVar28[1];\n                      if (puVar32 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f4cc:\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001f4d0;\n                        }\n                      }\n                      else {\nLAB_0001ee1c:\n                        iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                        if (iVar9 != 0) {\n                          puVar26 = (undefined4 *)puVar32[1];\n                          if (puVar26 == (undefined4 *)0x0) {\n                            if (piVar33 != (int *)0x0) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              goto LAB_0001faf8;\n                            }\n                          }\n                          else {\n                            iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                            if (((iVar9 != 0) &&\n                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                               (piVar33 != (int *)0x0)) {\n                              bVar7 = *(byte *)(piVar33 + 3);\n                              bVar10 = bVar7;\n                              piVar34 = piVar33;\n                              while (bVar10 != *(byte *)(puVar26 + 3)) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar26 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\nLAB_0001faf8:\n                              piVar34 = piVar33;\n                              bVar10 = bVar7;\n                              while (*(byte *)(puVar32 + 3) != bVar10) {\n                                piVar35 = (int *)*piVar34;\n                                piVar34 = (int *)piVar34[1];\n                                if (*(byte *)(puVar32 + 3) < bVar10) {\n                                  piVar34 = piVar35;\n                                }\n                                if (piVar34 == (int *)0x0) {\n                                  iVar9 = piVar23[5];\n                                  goto LAB_0001e868;\n                                }\n                                bVar10 = *(byte *)(piVar34 + 3);\n                              }\n                              goto LAB_0001f4cc;\n                            }\n                          }\n                        }\n                      }\n                      goto LAB_0001e864;\n                    }\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                       (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\n                    bVar10 = bVar7;\n                    piVar34 = piVar33;\n                    while (bVar10 != *(byte *)(puVar32 + 3)) {\n                      piVar35 = (int *)*piVar34;\n                      piVar34 = (int *)piVar34[1];\n                      if (*(byte *)(puVar32 + 3) < bVar10) {\n                        piVar34 = piVar35;\n                      }\n                      if (piVar34 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      bVar10 = *(byte *)(piVar34 + 3);\n                    }\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ee1c;\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001f4d0:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    puVar28 = (undefined4 *)puVar20[1];\n                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001ec1c;\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\njoined_r0x0001f32c:\n                    while (bVar7 != bVar11) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar7 < bVar11) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar11 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001ef7c;\n                  }\n                  puVar28 = (undefined4 *)puVar20[1];\n                  if (puVar28 == (undefined4 *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar11 = *(byte *)(piVar33 + 3);\nLAB_0001f328:\n                    bVar7 = *(byte *)(puVar20 + 3);\n                    piVar34 = piVar33;\n                    bVar10 = bVar11;\n                    goto joined_r0x0001f32c;\n                  }\nLAB_0001ec1c:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 != (undefined4 *)0x0) {\n                    iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                    if (iVar9 != 0) {\n                      puVar26 = (undefined4 *)puVar32[1];\n                      if (puVar26 == (undefined4 *)0x0) {\n                        if (piVar33 != (int *)0x0) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          goto LAB_0001fa14;\n                        }\n                      }\n                      else {\n                        iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                        if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0))\n                           && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar34 = piVar33;\n                          while (bVar10 != *(byte *)(puVar26 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar26 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\nLAB_0001fa14:\n                          piVar34 = piVar33;\n                          bVar10 = bVar7;\n                          while (bVar10 != *(byte *)(puVar32 + 3)) {\n                            piVar35 = (int *)*piVar34;\n                            piVar34 = (int *)piVar34[1];\n                            if (*(byte *)(puVar32 + 3) < bVar10) {\n                              piVar34 = piVar35;\n                            }\n                            if (piVar34 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar34 + 3);\n                          }\n                          piVar34 = (int *)puVar28[1];\n                          if (piVar34 != (int *)0x0) goto LAB_0001f0e8;\n                          bVar10 = *(byte *)(puVar28 + 3);\n                          piVar34 = piVar33;\n                          bVar11 = bVar7;\n                          goto joined_r0x0001fc8c;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  piVar34 = (int *)puVar28[1];\n                  if (piVar34 == (int *)0x0) {\n                    if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                    bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001fc88:\n                    bVar10 = *(byte *)(puVar28 + 3);\n                    piVar34 = piVar33;\n                    bVar11 = bVar7;\njoined_r0x0001fc8c:\n                    while (bVar10 != bVar7) {\n                      piVar35 = (int *)piVar34[1];\n                      if (bVar10 < bVar7) {\n                        piVar35 = (int *)*piVar34;\n                      }\n                      if (piVar35 == (int *)0x0) {\n                        iVar9 = piVar23[5];\n                        goto LAB_0001e868;\n                      }\n                      piVar34 = piVar35;\n                      bVar7 = *(byte *)(piVar35 + 3);\n                    }\n                    goto LAB_0001f328;\n                  }\nLAB_0001f0e8:\n                  puVar32 = (undefined4 *)*piVar34;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    local_534 = (undefined4 *)piVar34[1];\n                    if (local_534 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\nLAB_0001f964:\n                        piVar35 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(piVar34 + 3) != bVar10) {\n                          piVar36 = (int *)*piVar35;\n                          piVar35 = (int *)piVar35[1];\n                          if (*(byte *)(piVar34 + 3) < bVar10) {\n                            piVar35 = piVar36;\n                          }\n                          if (piVar35 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar35 + 3);\n                        }\n                        goto LAB_0001fc88;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*local_534);\n                      if (iVar9 != 0) {\nLAB_0001f5cc:\n                        iVar9 = FUN_0001ae90(piVar33,local_534[1]);\n                        if ((iVar9 != 0) && (piVar33 != (int *)0x0)) {\n                          bVar7 = *(byte *)(piVar33 + 3);\n                          bVar10 = bVar7;\n                          piVar35 = piVar33;\n                          while (*(byte *)(local_534 + 3) != bVar10) {\n                            piVar36 = (int *)*piVar35;\n                            piVar35 = (int *)piVar35[1];\n                            if (*(byte *)(local_534 + 3) < bVar10) {\n                              piVar35 = piVar36;\n                            }\n                            if (piVar35 == (int *)0x0) {\n                              iVar9 = piVar23[5];\n                              goto LAB_0001e868;\n                            }\n                            bVar10 = *(byte *)(piVar35 + 3);\n                          }\n                          goto LAB_0001f964;\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                  bVar10 = bVar7;\n                  piVar35 = piVar33;\n                  while (bVar10 != *(byte *)(puVar32 + 3)) {\n                    piVar36 = (int *)*piVar35;\n                    piVar35 = (int *)piVar35[1];\n                    if (*(byte *)(puVar32 + 3) < bVar10) {\n                      piVar35 = piVar36;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                  local_534 = (undefined4 *)piVar34[1];\n                  if (local_534 == (undefined4 *)0x0) goto LAB_0001f964;\n                  iVar9 = FUN_0001ae90(piVar33,*local_534);\n                  if (iVar9 != 0) goto LAB_0001f5cc;\n                  iVar9 = piVar23[5];\nLAB_0001e868:\n                  iVar9 = iVar9 - *(int *)(iVar4 + 0x14);\n                  if (iVar9 < *(int *)(iVar4 + 0x18)) {\n                    *(int *)(iVar4 + 0x18) = iVar9;\n                  }\n                  goto LAB_0001e884;\n                }\n                puVar28 = (undefined4 *)*puVar20;\n                if (puVar28 != (undefined4 *)0x0) {\n                  iVar9 = FUN_0001ae90(piVar33,*puVar28);\n                  if (iVar9 != 0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        goto LAB_0001ed20;\n                      }\n                    }\n                    else {\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0))\n                         && (piVar33 != (int *)0x0)) {\n                        bVar7 = *(byte *)(piVar33 + 3);\n                        bVar10 = bVar7;\n                        piVar34 = piVar33;\n                        while (bVar10 != *(byte *)(puVar32 + 3)) {\n                          iVar9 = *piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar32 + 3) < bVar10) {\n                            piVar34 = (int *)iVar9;\n                          }\n                          if (piVar34 == (int *)0x0) goto LAB_0001e864;\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\nLAB_0001ed20:\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        while (*(byte *)(puVar28 + 3) != bVar10) {\n                          piVar35 = (int *)*piVar34;\n                          piVar34 = (int *)piVar34[1];\n                          if (*(byte *)(puVar28 + 3) < bVar10) {\n                            piVar34 = piVar35;\n                          }\n                          if (piVar34 == (int *)0x0) {\n                            iVar9 = piVar23[5];\n                            goto LAB_0001e868;\n                          }\n                          bVar10 = *(byte *)(piVar34 + 3);\n                        }\n                        puVar28 = (undefined4 *)puVar20[1];\n                        if (puVar28 != (undefined4 *)0x0) goto LAB_0001ea10;\n                        bVar11 = *(byte *)(puVar20 + 3);\n                        piVar34 = piVar33;\n                        bVar10 = bVar7;\n                        goto joined_r0x0001f08c;\n                      }\n                    }\n                  }\n                  goto LAB_0001e864;\n                }\n                puVar28 = (undefined4 *)puVar20[1];\n                if (puVar28 == (undefined4 *)0x0) {\n                  if (piVar33 == (int *)0x0) goto LAB_0001e864;\n                  bVar7 = *(byte *)(piVar33 + 3);\n                }\n                else {\nLAB_0001ea10:\n                  puVar32 = (undefined4 *)*puVar28;\n                  if (puVar32 == (undefined4 *)0x0) {\n                    puVar32 = (undefined4 *)puVar28[1];\n                    if (puVar32 == (undefined4 *)0x0) {\n                      if (piVar33 != (int *)0x0) {\n                        bVar10 = *(byte *)(piVar33 + 3);\nLAB_0001f52c:\n                        bVar11 = *(byte *)(puVar28 + 3);\n                        piVar34 = piVar33;\n                        bVar7 = bVar10;\n                        goto joined_r0x0001f530;\n                      }\n                    }\n                    else {\nLAB_0001eecc:\n                      iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                      if (iVar9 != 0) {\n                        puVar26 = (undefined4 *)puVar32[1];\n                        if (puVar26 == (undefined4 *)0x0) {\n                          if (piVar33 != (int *)0x0) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            goto LAB_0001fa60;\n                          }\n                        }\n                        else {\n                          iVar9 = FUN_0001ae90(piVar33,*puVar26);\n                          if (((iVar9 != 0) &&\n                              (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&\n                             (piVar33 != (int *)0x0)) {\n                            bVar10 = *(byte *)(piVar33 + 3);\n                            bVar7 = bVar10;\n                            piVar34 = piVar33;\n                            while (*(byte *)(puVar26 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar26 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\nLAB_0001fa60:\n                            piVar34 = piVar33;\n                            bVar7 = bVar10;\n                            while (*(byte *)(puVar32 + 3) != bVar7) {\n                              piVar35 = (int *)*piVar34;\n                              piVar34 = (int *)piVar34[1];\n                              if (*(byte *)(puVar32 + 3) < bVar7) {\n                                piVar34 = piVar35;\n                              }\n                              if (piVar34 == (int *)0x0) {\n                                iVar9 = piVar23[5];\n                                goto LAB_0001e868;\n                              }\n                              bVar7 = *(byte *)(piVar34 + 3);\n                            }\n                            goto LAB_0001f52c;\n                          }\n                        }\n                      }\n                    }\n                    goto LAB_0001e864;\n                  }\n                  iVar9 = FUN_0001ae90(piVar33,*puVar32);\n                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||\n                     (piVar33 == (int *)0x0)) goto LAB_0001e864;\n                  bVar10 = *(byte *)(piVar33 + 3);\n                  bVar7 = bVar10;\n                  piVar34 = piVar33;\n                  while (*(byte *)(puVar32 + 3) != bVar7) {\n                    piVar35 = (int *)*piVar34;\n                    piVar34 = (int *)piVar34[1];\n                    if (*(byte *)(puVar32 + 3) < bVar7) {\n                      piVar34 = piVar35;\n                    }\n                    if (piVar34 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    bVar7 = *(byte *)(piVar34 + 3);\n                  }\n                  puVar32 = (undefined4 *)puVar28[1];\n                  if (puVar32 != (undefined4 *)0x0) goto LAB_0001eecc;\n                  bVar11 = *(byte *)(puVar28 + 3);\n                  piVar34 = piVar33;\n                  bVar7 = bVar10;\njoined_r0x0001f530:\n                  while (bVar10 != bVar11) {\n                    piVar35 = (int *)piVar34[1];\n                    if (bVar11 < bVar10) {\n                      piVar35 = (int *)*piVar34;\n                    }\n                    if (piVar35 == (int *)0x0) {\n                      iVar9 = piVar23[5];\n                      goto LAB_0001e868;\n                    }\n                    piVar34 = piVar35;\n                    bVar10 = *(byte *)(piVar35 + 3);\n                  }\n                }\n                bVar11 = *(byte *)(puVar20 + 3);\n                piVar34 = piVar33;\n                bVar10 = bVar7;\njoined_r0x0001f08c:\n                while (bVar7 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar7) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar7 = *(byte *)(piVar35 + 3);\n                }\n                puVar20 = (undefined4 *)puVar16[1];\n                if (puVar20 != (undefined4 *)0x0) goto LAB_0001e974;\n                bVar11 = *(byte *)(puVar16 + 3);\n                piVar34 = piVar33;\n                bVar7 = bVar10;\njoined_r0x0001ef80:\n                while (bVar10 != bVar11) {\n                  piVar35 = (int *)piVar34[1];\n                  if (bVar11 < bVar10) {\n                    piVar35 = (int *)*piVar34;\n                  }\n                  if (piVar35 == (int *)0x0) {\n                    iVar9 = piVar23[5];\n                    goto LAB_0001e868;\n                  }\n                  piVar34 = piVar35;\n                  bVar10 = *(byte *)(piVar35 + 3);\n                }\n                puVar16 = (undefined4 *)puVar27[1];\n                if (puVar16 != (undefined4 *)0x0) goto LAB_0001e8cc;\n                bVar10 = *(byte *)(puVar27 + 3);\n              }\n              while (bVar10 != bVar7) {\n                piVar34 = (int *)*piVar33;\n                piVar33 = (int *)piVar33[1];\n                if (bVar10 < bVar7) {\n                  piVar33 = piVar34;\n                }\n                if (piVar33 == (int *)0x0) {\n                  iVar9 = piVar23[5];\n                  goto LAB_0001e868;\n                }\n                bVar7 = *(byte *)(piVar33 + 3);\n              }\n            }\nLAB_0001e884:\n            if ((iVar8 != 0) &&\n               (iVar9 = piVar23[5] - *(int *)(iVar4 + 0x14), iVar9 < *(int *)(iVar4 + 0x1c))) {\n              *(int *)(iVar4 + 0x1c) = iVar9;\n            }\n            iVar4 = *(int *)(iVar4 + 0x10);\n          } while (iVar4 != 0);\n          piVar23 = (int *)piVar23[3];\n        }\n        else {\nLAB_0001dfb4:\n          piVar23 = (int *)piVar23[3];\n        }\n      } while (piVar23 != (int *)0x0);\n      if (iVar31 == 1) {\n        piVar23 = (int *)param_1[0xc];\n        goto LAB_000206c8;\n      }\n    }\n  }\nLAB_0001dfc8:\n  if (pbVar29 == (byte *)0x0) {\n    puVar16 = param_1 + 0x4f;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) goto LAB_0001dff8;\nLAB_0001f81c:\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((*piVar23 != 0) && (uVar17 = uVar5, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar14 == uVar5) {\n          uVar17 = uVar14;\n          uVar24 = uVar21;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar17 = 0xffffffff;\n            uVar24 = uVar21;\n          }\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  else {\n    puVar16 = auStack_52c;\n    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);\n    puVar27 = *(undefined4 **)(param_1[0xc] + 4);\n    if (puVar27 != (undefined4 *)0x0) {\nLAB_0001dff8:\n      puVar20 = (undefined4 *)*puVar27;\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar20 = (undefined4 *)puVar27[1];\n      if (puVar20 != (undefined4 *)0x0) {\n        puVar28 = (undefined4 *)*puVar20;\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar28 = (undefined4 *)puVar20[1];\n        if (puVar28 != (undefined4 *)0x0) {\n          puVar32 = (undefined4 *)*puVar28;\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar32 = (undefined4 *)puVar28[1];\n          if (puVar32 != (undefined4 *)0x0) {\n            puVar26 = (undefined4 *)*puVar32;\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar26 = (undefined4 *)puVar32[1];\n            if (puVar26 != (undefined4 *)0x0) {\n              FUN_0001af60(*puVar26,puVar16);\n              FUN_0001af60(puVar26[1],puVar16);\n              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];\n            }\n            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];\n          }\n          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];\n        }\n        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];\n      }\n      puVar16[*(byte *)(puVar27 + 3)] = puVar27[2];\n      if (pbVar29 == (byte *)0x0) goto LAB_0001f81c;\n    }\n    piVar23 = param_1 + 0x4f;\n    uVar5 = 0;\n    uVar14 = 0xfffffffe;\n    uVar21 = 0xffffffff;\n    do {\n      uVar12 = (uint)pbVar29[uVar5];\n      iVar8 = puVar16[uVar12];\n      *piVar23 = iVar8;\n      uVar17 = uVar14;\n      uVar24 = uVar21;\n      if ((iVar8 != 0) && (uVar17 = uVar12, uVar24 = uVar5, -2 < (int)uVar14)) {\n        if (uVar12 == uVar14) {\n          uVar17 = uVar14;\n          if (uVar14 != uVar21) {\n            uVar24 = 0xffffffff;\n          }\n        }\n        else if ((uVar12 != uVar5) || (uVar17 = uVar14, uVar14 != uVar21)) {\n          uVar17 = 0xffffffff;\n          uVar24 = uVar21;\n        }\n      }\n      uVar5 = uVar5 + 1;\n      piVar23 = piVar23 + 1;\n      uVar14 = uVar17;\n      uVar21 = uVar24;\n    } while (uVar5 != 0x100);\n  }\n  param_1[0x152] = uVar17;\n  param_1[0x153] = uVar24;\n  if (iVar31 != 1) goto LAB_0001e6f8;\n  uVar21 = param_1[4];\n  uVar14 = param_1[0xd];\n  if (uVar21 - param_1[3] < uVar14) {\n    _obstack_newchunk(param_1);\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) goto LAB_000209a8;\n  }\n  else {\n    iVar8 = param_1[2];\n    iVar31 = param_1[3] + uVar14;\n    param_1[3] = iVar31;\n    if (iVar31 == iVar8) {\nLAB_000209a8:\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n  }\n  uVar5 = iVar31 + param_1[6] & ~param_1[6];\n  param_1[3] = uVar5;\n  if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n    param_1[3] = uVar21;\n    uVar5 = uVar21;\n  }\n  piVar23 = (int *)param_1[0xc];\n  param_1[2] = uVar5;\n  param_1[0x14f] = iVar8;\n  if (-1 < (int)(uVar14 - 1)) {\n    *(undefined1 *)(iVar8 + (uVar14 - 1)) = *(undefined1 *)(piVar23[1] + 0xc);\n    piVar23 = (int *)piVar23[3];\n    for (iVar31 = uVar14 - 2; iVar31 != -1; iVar31 = iVar31 + -1) {\n      *(undefined1 *)(param_1[0x14f] + iVar31) = *(undefined1 *)(piVar23[1] + 0xc);\n      piVar23 = (int *)piVar23[3];\n    }\n    uVar14 = param_1[0xd];\n  }\n  bVar1 = (int)uVar14 < 2;\n  if (!bVar1) {\n    uVar21 = param_1[4];\n    iVar31 = param_1[3];\n    uVar5 = (uVar14 - 1) * 4;\n    if (uVar21 - iVar31 < uVar5) {\n      _obstack_newchunk(param_1,uVar5);\n      uVar14 = param_1[0xd];\n      iVar31 = param_1[3];\n      uVar21 = param_1[4];\n      bVar1 = (int)uVar14 < 2;\n    }\n    piVar33 = (int *)param_1[2];\n    piVar23 = (int *)(iVar31 + uVar5);\n    param_1[3] = piVar23;\n    if (piVar23 == piVar33) {\n      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n    }\n    uVar5 = (int)piVar23 + param_1[6] & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    param_1[2] = uVar5;\n    param_1[0x150] = piVar33;\n    piVar23 = *(int **)(param_1[0xc] + 0xc);\n    if (!bVar1) {\n      iVar31 = 0;\n      do {\n        piVar34 = piVar23 + 6;\n        piVar23 = (int *)piVar23[3];\n        iVar31 = iVar31 + 1;\n        *piVar33 = *piVar34;\n        uVar14 = param_1[0xd];\n        piVar33 = piVar33 + 1;\n      } while (iVar31 < (int)(uVar14 - 1));\n    }\n    bVar7 = *(byte *)(param_1[0x14f] + uVar14 + -2);\n    if (pbVar29 != (byte *)0x0) {\n      bVar7 = pbVar29[bVar7];\n    }\n    *(byte *)(param_1 + 0x154) = bVar7;\n  }\nLAB_0001e6f8:\n  if (pbVar29 != (byte *)0x0) {\n    pbVar13 = pbVar29 + 0x100;\n    piVar33 = param_1 + 0xf;\n    do {\n      bVar7 = *pbVar29;\n      piVar23 = (int *)((int)piVar33 + 1);\n      pbVar29 = pbVar29 + 1;\n      *(undefined1 *)piVar33 = *(undefined1 *)((int)puVar30 + (uint)bVar7);\n      piVar33 = piVar23;\n    } while (pbVar13 != pbVar29);\n  }\n  if (local_2c == *(int *)puVar2) {\n    return;\n  }\n  (*(code *)PTR___stack_chk_fail_00056494)();\n                    \n                    \n  (*(code *)piVar23[0x155])();\n  return;\n}" ({ "{") (declaration "bool bVar1;" (primitive_type "bool") (identifier "bVar1") (; ";")) (declaration "undefined *puVar2;" (type_identifier "undefined") (pointer_declarator "*puVar2" (* "*") (identifier "puVar2")) (; ";")) (declaration "undefined *puVar3;" (type_identifier "undefined") (pointer_declarator "*puVar3" (* "*") (identifier "puVar3")) (; ";")) (declaration "int iVar4;" (primitive_type "int") (identifier "iVar4") (; ";")) (declaration "uint uVar5;" (type_identifier "uint") (identifier "uVar5") (; ";")) (declaration "byte bVar7;" (type_identifier "byte") (identifier "bVar7") (; ";")) (declaration "undefined1 *puVar6;" (type_identifier "undefined1") (pointer_declarator "*puVar6" (* "*") (identifier "puVar6")) (; ";")) (declaration "int iVar8;" (primitive_type "int") (identifier "iVar8") (; ";")) (declaration "undefined4 extraout_v1;" (type_identifier "undefined4") (identifier "extraout_v1") (; ";")) (declaration "int extraout_v1_00;" (primitive_type "int") (identifier "extraout_v1_00") (; ";")) (declaration "undefined4 extraout_v1_01;" (type_identifier "undefined4") (identifier "extraout_v1_01") (; ";")) (declaration "int extraout_v1_02;" (primitive_type "int") (identifier "extraout_v1_02") (; ";")) (declaration "undefined4 extraout_v1_03;" (type_identifier "undefined4") (identifier "extraout_v1_03") (; ";")) (declaration "int extraout_v1_04;" (primitive_type "int") (identifier "extraout_v1_04") (; ";")) (declaration "undefined4 extraout_v1_05;" (type_identifier "undefined4") (identifier "extraout_v1_05") (; ";")) (declaration "int extraout_v1_06;" (primitive_type "int") (identifier "extraout_v1_06") (; ";")) (declaration "undefined4 extraout_v1_07;" (type_identifier "undefined4") (identifier "extraout_v1_07") (; ";")) (declaration "int extraout_v1_08;" (primitive_type "int") (identifier "extraout_v1_08") (; ";")) (declaration "undefined4 extraout_v1_09;" (type_identifier "undefined4") (identifier "extraout_v1_09") (; ";")) (declaration "int extraout_v1_10;" (primitive_type "int") (identifier "extraout_v1_10") (; ";")) (declaration "undefined4 extraout_v1_11;" (type_identifier "undefined4") (identifier "extraout_v1_11") (; ";")) (declaration "int extraout_v1_12;" (primitive_type "int") (identifier "extraout_v1_12") (; ";")) (declaration "undefined4 extraout_v1_13;" (type_identifier "undefined4") (identifier "extraout_v1_13") (; ";")) (declaration "int extraout_v1_14;" (primitive_type "int") (identifier "extraout_v1_14") (; ";")) (declaration "undefined4 extraout_v1_15;" (type_identifier "undefined4") (identifier "extraout_v1_15") (; ";")) (declaration "int extraout_v1_16;" (primitive_type "int") (identifier "extraout_v1_16") (; ";")) (declaration "undefined4 extraout_v1_17;" (type_identifier "undefined4") (identifier "extraout_v1_17") (; ";")) (declaration "int extraout_v1_18;" (primitive_type "int") (identifier "extraout_v1_18") (; ";")) (declaration "undefined4 extraout_v1_19;" (type_identifier "undefined4") (identifier "extraout_v1_19") (; ";")) (declaration "int extraout_v1_20;" (primitive_type "int") (identifier "extraout_v1_20") (; ";")) (declaration "undefined4 extraout_v1_21;" (type_identifier "undefined4") (identifier "extraout_v1_21") (; ";")) (declaration "int extraout_v1_22;" (primitive_type "int") (identifier "extraout_v1_22") (; ";")) (declaration "undefined4 extraout_v1_23;" (type_identifier "undefined4") (identifier "extraout_v1_23") (; ";")) (declaration "int extraout_v1_24;" (primitive_type "int") (identifier "extraout_v1_24") (; ";")) (declaration "undefined4 extraout_v1_25;" (type_identifier "undefined4") (identifier "extraout_v1_25") (; ";")) (declaration "int extraout_v1_26;" (primitive_type "int") (identifier "extraout_v1_26") (; ";")) (declaration "undefined4 extraout_v1_27;" (type_identifier "undefined4") (identifier "extraout_v1_27") (; ";")) (declaration "int extraout_v1_28;" (primitive_type "int") (identifier "extraout_v1_28") (; ";")) (declaration "undefined4 extraout_v1_29;" (type_identifier "undefined4") (identifier "extraout_v1_29") (; ";")) (declaration "int extraout_v1_30;" (primitive_type "int") (identifier "extraout_v1_30") (; ";")) (declaration "int iVar9;" (primitive_type "int") (identifier "iVar9") (; ";")) (declaration "byte bVar10;" (type_identifier "byte") (identifier "bVar10") (; ";")) (declaration "byte bVar11;" (type_identifier "byte") (identifier "bVar11") (; ";")) (declaration "uint uVar12;" (type_identifier "uint") (identifier "uVar12") (; ";")) (declaration "byte *pbVar13;" (type_identifier "byte") (pointer_declarator "*pbVar13" (* "*") (identifier "pbVar13")) (; ";")) (declaration "uint uVar14;" (type_identifier "uint") (identifier "uVar14") (; ";")) (declaration "undefined4 uVar15;" (type_identifier "undefined4") (identifier "uVar15") (; ";")) (declaration "undefined4 *puVar16;" (type_identifier "undefined4") (pointer_declarator "*puVar16" (* "*") (identifier "puVar16")) (; ";")) (declaration "uint uVar17;" (type_identifier "uint") (identifier "uVar17") (; ";")) (declaration "undefined1 *puVar18;" (type_identifier "undefined1") (pointer_declarator "*puVar18" (* "*") (identifier "puVar18")) (; ";")) (declaration "undefined4 uVar19;" (type_identifier "undefined4") (identifier "uVar19") (; ";")) (declaration "undefined4 *puVar20;" (type_identifier "undefined4") (pointer_declarator "*puVar20" (* "*") (identifier "puVar20")) (; ";")) (declaration "uint uVar21;" (type_identifier "uint") (identifier "uVar21") (; ";")) (declaration "undefined4 uVar22;" (type_identifier "undefined4") (identifier "uVar22") (; ";")) (declaration "int *piVar23;" (primitive_type "int") (pointer_declarator "*piVar23" (* "*") (identifier "piVar23")) (; ";")) (declaration "uint uVar24;" (type_identifier "uint") (identifier "uVar24") (; ";")) (declaration "int **ppiVar25;" (primitive_type "int") (pointer_declarator "**ppiVar25" (* "*") (pointer_declarator "*ppiVar25" (* "*") (identifier "ppiVar25"))) (; ";")) (declaration "undefined4 *puVar26;" (type_identifier "undefined4") (pointer_declarator "*puVar26" (* "*") (identifier "puVar26")) (; ";")) (declaration "undefined4 *puVar27;" (type_identifier "undefined4") (pointer_declarator "*puVar27" (* "*") (identifier "puVar27")) (; ";")) (declaration "undefined4 *puVar28;" (type_identifier "undefined4") (pointer_declarator "*puVar28" (* "*") (identifier "puVar28")) (; ";")) (declaration "byte *pbVar29;" (type_identifier "byte") (pointer_declarator "*pbVar29" (* "*") (identifier "pbVar29")) (; ";")) (declaration "undefined4 *puVar30;" (type_identifier "undefined4") (pointer_declarator "*puVar30" (* "*") (identifier "puVar30")) (; ";")) (declaration "int iVar31;" (primitive_type "int") (identifier "iVar31") (; ";")) (declaration "undefined4 *puVar32;" (type_identifier "undefined4") (pointer_declarator "*puVar32" (* "*") (identifier "puVar32")) (; ";")) (declaration "int *piVar33;" (primitive_type "int") (pointer_declarator "*piVar33" (* "*") (identifier "piVar33")) (; ";")) (declaration "int *piVar34;" (primitive_type "int") (pointer_declarator "*piVar34" (* "*") (identifier "piVar34")) (; ";")) (declaration "int *piVar35;" (primitive_type "int") (pointer_declarator "*piVar35" (* "*") (identifier "piVar35")) (; ";")) (declaration "int *piVar36;" (primitive_type "int") (pointer_declarator "*piVar36" (* "*") (identifier "piVar36")) (; ";")) (declaration "undefined4 *local_534;" (type_identifier "undefined4") (pointer_declarator "*local_534" (* "*") (identifier "local_534")) (; ";")) (declaration "int *local_530;" (primitive_type "int") (pointer_declarator "*local_530" (* "*") (identifier "local_530")) (; ";")) (declaration "undefined4 auStack_52c [256];" (type_identifier "undefined4") (array_declarator "auStack_52c [256]" (identifier "auStack_52c") ([ "[") (number_literal "256") (] "]")) (; ";")) (declaration "undefined4 auStack_12c [64];" (type_identifier "undefined4") (array_declarator "auStack_12c [64]" (identifier "auStack_12c") ([ "[") (number_literal "64") (] "]")) (; ";")) (declaration "int local_2c;" (primitive_type "int") (identifier "local_2c") (; ";")) (expression_statement "puVar2 = PTR___stack_chk_guard_000564b4;" (assignment_expression "puVar2 = PTR___stack_chk_guard_000564b4" (identifier "puVar2") (= "=") (identifier "PTR___stack_chk_guard_000564b4")) (; ";")) (expression_statement "pbVar29 = (byte *)param_1[0x151];" (assignment_expression "pbVar29 = (byte *)param_1[0x151]" (identifier "pbVar29") (= "=") (cast_expression "(byte *)param_1[0x151]" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (subscript_expression "param_1[0x151]" (identifier "param_1") ([ "[") (number_literal "0x151") (] "]")))) (; ";")) (expression_statement "local_2c = *(int *)PTR___stack_chk_guard_000564b4;" (assignment_expression "local_2c = *(int *)PTR___stack_chk_guard_000564b4" (identifier "local_2c") (= "=") (pointer_expression "*(int *)PTR___stack_chk_guard_000564b4" (* "*") (cast_expression "(int *)PTR___stack_chk_guard_000564b4" (( "(") (type_descriptor "int *" (primitive_type "int") (abstract_pointer_declarator "*" (* "*"))) () ")") (identifier "PTR___stack_chk_guard_000564b4")))) (; ";")) (expression_statement "puVar30 = param_1 + 0xf;" (assignment_expression "puVar30 = param_1 + 0xf" (identifier "puVar30") (= "=") (binary_expression "param_1 + 0xf" (identifier "param_1") (+ "+") (number_literal "0xf"))) (; ";")) (if_statement "if (pbVar29 != (byte *)0x0) {\n    puVar30 = auStack_12c;\n  }" (if "if") (parenthesized_expression "(pbVar29 != (byte *)0x0)" (( "(") (binary_expression "pbVar29 != (byte *)0x0" (identifier "pbVar29") (!= "!=") (cast_expression "(byte *)0x0" (( "(") (type_descriptor "byte *" (type_identifier "byte") (abstract_pointer_declarator "*" (* "*"))) () ")") (number_literal "0x0"))) () ")")) (compound_statement "{\n    puVar30 = auStack_12c;\n  }" ({ "{") (expression_statement "puVar30 = auStack_12c;" (assignment_expression "puVar30 = auStack_12c" (identifier "puVar30") (= "=") (identifier "auStack_12c")) (; ";")) (} "}"))) (expression_statement "iVar31 = param_1[0xb];" (assignment_expression "iVar31 = param_1[0xb]" (identifier "iVar31") (= "=") (subscript_expression "param_1[0xb]" (identifier "param_1") ([ "[") (number_literal "0xb") (] "]"))) (; ";")) (if_statement "if (iVar31 == 1) {\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\n      ppiVar25 = &local_530;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 == (undefined4 *)0x0) {\n                piVar33 = (int *)puVar20[2];\n                local_530[3] = (int)piVar33;\n                local_530 = piVar33;\n              }\n              else {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  iVar8 = puVar28[2];\n                  local_530[3] = iVar8;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar4 = piVar33[2];\n                  local_530[3] = iVar4;\n                  iVar8 = puVar28[2];\n                  *(int *)(iVar4 + 0xc) = iVar8;\n                }\n                local_530 = (int *)puVar20[2];\n                *(int **)(iVar8 + 0xc) = local_530;\n              }\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n          }\n          local_530 = (int *)puVar27[2];\n          piVar33[3] = (int)local_530;\n        }\n        piVar23 = (int *)piVar23[3];\n      } while (piVar23 != (int *)0x0);\n    }\n    uVar21 = param_1[4];\n    uVar14 = param_1[0xd];\n    if (uVar21 - param_1[3] < uVar14) {\n      _obstack_newchunk(param_1);\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      uVar21 = param_1[4];\n      uVar14 = param_1[0xd];\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) goto LAB_00020968;\n    }\n    else {\n      puVar18 = (undefined1 *)param_1[2];\n      puVar6 = (undefined1 *)(param_1[3] + uVar14);\n      param_1[3] = puVar6;\n      if (puVar6 == puVar18) {\nLAB_00020968:\n        *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;\n      }\n    }\n    uVar5 = (uint)(puVar6 + param_1[6]) & ~param_1[6];\n    param_1[3] = uVar5;\n    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {\n      param_1[3] = uVar21;\n      uVar5 = uVar21;\n    }\n    iVar8 = param_1[0xc];\n    param_1[2] = uVar5;\n    param_1[0x14f] = puVar18;\n    if (0 < (int)uVar14) {\n      *puVar18 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n      iVar8 = *(int *)(iVar8 + 0xc);\n      if (1 < (int)param_1[0xd]) {\n        iVar4 = 1;\n        do {\n          puVar6 = (undefined1 *)(param_1[0x14f] + iVar4);\n          iVar4 = iVar4 + 1;\n          *puVar6 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);\n          iVar8 = *(int *)(iVar8 + 0xc);\n        } while (iVar4 < (int)param_1[0xd]);\n      }\n    }\n    puVar20 = (undefined4 *)kwsalloc(param_1[0x151]);\n    uVar19 = param_1[0xd];\n    uVar15 = param_1[0x14f];\n    puVar20[0x155] = PTR_LAB_00056238 + -0x47f8;\n    kwsincr(puVar20,uVar15,uVar19);\n    _obstack_free(param_1,0);\n    puVar27 = puVar20;\n    puVar16 = param_1;\n    do {\n      puVar32 = puVar16;\n      puVar28 = puVar27;\n      puVar27 = puVar28 + 4;\n      uVar22 = puVar28[1];\n      uVar19 = puVar28[2];\n      uVar15 = puVar28[3];\n      *puVar32 = *puVar28;\n      puVar32[1] = uVar22;\n      puVar32[2] = uVar19;\n      puVar32[3] = uVar15;\n      puVar3 = PTR_free_000564c0;\n      puVar16 = puVar32 + 4;\n    } while (puVar27 != puVar20 + 0x154);\n    uVar15 = puVar28[5];\n    puVar32[4] = *puVar27;\n    puVar32[5] = uVar15;\n    (*(code *)puVar3)(puVar20);\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) goto LAB_0001d27c;\nLAB_000206c8:\n    for (iVar8 = piVar23[3]; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0xc)) {\n      while( true ) {\n        iVar9 = *(int *)(*(int *)(iVar8 + 8) + 0x1c);\n        iVar4 = *(int *)(iVar8 + 0x1c);\n        if (iVar9 < *(int *)(iVar8 + 0x1c)) {\n          *(int *)(iVar8 + 0x1c) = iVar9;\n          iVar4 = iVar9;\n        }\n        if (*(int *)(iVar8 + 0x18) <= iVar4) break;\n        *(int *)(iVar8 + 0x18) = iVar4;\n        iVar8 = *(int *)(iVar8 + 0xc);\n        if (iVar8 == 0) goto LAB_0001dfc8;\n      }\n    }\n  }\n  else {\n    iVar8 = 0xff;\n    if ((int)param_1[0xd] < 0x100) {\n      iVar8 = param_1[0xd];\n    }\n    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);\n    piVar23 = (int *)param_1[0xc];\n    local_530 = piVar23;\n    if (piVar23 != (int *)0x0) {\nLAB_0001d27c:\n      ppiVar25 = &local_530;\n      local_530 = piVar23;\n      do {\n        puVar27 = (undefined4 *)piVar23[1];\n        if (puVar27 != (undefined4 *)0x0) {\n          puVar16 = (undefined4 *)*puVar27;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              piVar33 = (int *)puVar20[2];\n              local_530[3] = (int)piVar33;\n              local_530 = piVar33;\n            }\n            puVar20 = (undefined4 *)puVar16[1];\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*piVar34 != 0) {\n                    FUN_0001afec(*piVar34,ppiVar25);\n                  }\n                  if (piVar34[1] != 0) {\n                    FUN_0001afec(piVar34[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar34[2];\n                  local_530[3] = (int)piVar33;\n                }\n                local_530 = (int *)puVar28[2];\n                piVar33[3] = (int)local_530;\n              }\n              puVar28 = (undefined4 *)puVar20[1];\n              piVar33 = local_530;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar33 = (int *)puVar28[1];\n                if (piVar33 == (int *)0x0) {\n                  piVar33 = (int *)puVar28[2];\n                  local_530[3] = (int)piVar33;\n                }\n                else {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  iVar8 = piVar33[2];\n                  local_530[3] = iVar8;\n                  piVar33 = (int *)puVar28[2];\n                  *(int **)(iVar8 + 0xc) = piVar33;\n                }\n              }\n              local_530 = (int *)puVar20[2];\n              piVar33[3] = (int)local_530;\n            }\n            piVar33 = (int *)puVar16[2];\n            local_530[3] = (int)piVar33;\n            local_530 = piVar33;\n          }\n          puVar16 = (undefined4 *)puVar27[1];\n          piVar33 = local_530;\n          if (puVar16 != (undefined4 *)0x0) {\n            puVar20 = (undefined4 *)*puVar16;\n            if (puVar20 != (undefined4 *)0x0) {\n              puVar28 = (undefined4 *)*puVar20;\n              if (puVar28 != (undefined4 *)0x0) {\n                piVar33 = (int *)*puVar28;\n                if (piVar33 != (int *)0x0) {\n                  if (*piVar33 != 0) {\n                    FUN_0001afec(*piVar33,ppiVar25);\n                  }\n                  if (piVar33[1] != 0) {\n                    FUN_0001afec(piVar33[1],ppiVar25);\n                  }\n                  piVar33 = (int *)piVar33[2];\n                  local_530[3] = (int)piVar33;\n                  local_530 = piVar33;\n                }\n                piVar34 = (int *)puVar28[1];\n                piVar33 = local_530;\n                if (piVar34 != (int *)0x0) {\n                  if (*
(translation_unit (function_definition type: (primitive_type) declarator: (function_declarator declarator: (identifier) parameters: (parameter_list (parameter_declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))))) body: (compound_statement (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator 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: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) 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: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (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: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (identifier)) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (pointer_declarator declarator: (identifier)))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (identifier)) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (primitive_type) declarator: (pointer_declarator declarator: (identifier))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (type_identifier) declarator: (array_declarator declarator: (identifier) size: (number_literal))) (declaration type: (primitive_type) declarator: (identifier)) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_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)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_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)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (call_expression function: (parenthesized_expression (identifier)) arguments: (argument_list (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) 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 (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (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)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))) (expression_statement (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 (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (for_statement initializer: (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) condition: (binary_expression left: (identifier) right: (number_literal)) update: (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)))))) body: (compound_statement (while_statement condition: (parenthesized_expression (true)) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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: (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: (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: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (break_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: (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: (goto_statement label: (statement_identifier))))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (if_statement condition: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (subscript_expression argument: (identifier) index: (number_literal))) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))))) (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) (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier))))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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 (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) alternative: (else_clause (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (identifier))) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (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)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (binary_expression left: (parenthesized_expression (identifier)) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal)) (subscript_expression argument: (identifier) index: (number_literal)) (binary_expression left: (identifier) right: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (do_statement body: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (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 declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_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)) 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)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (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))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (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))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (goto_statement label: (statement_identifier))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (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))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (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: (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))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (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: (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))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (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: (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)))) 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: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (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))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_identifier)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier)))))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_identifier)))))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (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))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_identifier)))))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (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))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (goto_statement label: (statement_identifier)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (type_identifier) 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: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (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: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_identifier))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (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))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (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))))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) consequence: (compound_statement (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))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_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))))))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (goto_statement label: (statement_identifier))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) 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))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))))))) (goto_statement label: (statement_identifier))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (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))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (goto_statement label: (statement_identifier)))))))))))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (call_expression function: (identifier) arguments: (argument_list (identifier) (subscript_expression argument: (identifier) index: (number_literal))))) right: (binary_expression left: (identifier) right: (number_literal)))))) right: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) 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: (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))) (while_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (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: (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))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (labeled_statement label: (statement_identifier) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) (while_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (goto_statement label: (statement_identifier)))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (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))))))) right: (binary_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (identifier)))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))) alternative: (else_clause (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal)))))))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (goto_statement label: (statement_identifier))))))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (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 (identifier) (number_literal) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))) (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (pointer_expression argument: (identifier)) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) consequence: (compound_statement (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: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal)))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))))))))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (identifier))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list (identifier) (number_literal) (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: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier)))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (identifier))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (pointer_expression argument: (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: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (pointer_expression argument: (identifier)) (identifier)))) (expression_statement (call_expression function: (identifier) arguments: (argument_list (subscript_expression argument: (identifier) index: (number_literal)) (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (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: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (goto_statement label: (statement_identifier))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier)) value: (subscript_expression argument: (identifier) index: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (identifier)))) (expression_statement (assignment_expression left: (pointer_expression argument: (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: (identifier) right: (number_literal))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)))))))) consequence: (compound_statement (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (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: (number_literal)))))) alternative: (else_clause (if_statement condition: (parenthesized_expression (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) right: (parenthesized_expression (comma_expression left: (assignment_expression left: (identifier) right: (identifier)) right: (binary_expression left: (identifier) right: (identifier)))))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))))))) (expression_statement (assignment_expression left: (identifier) right: (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))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal)))))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) consequence: (goto_statement label: (statement_identifier))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (goto_statement label: (statement_identifier)))) alternative: (else_clause (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (labeled_statement label: (statement_identifier) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))))))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (number_literal) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (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: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (for_statement initializer: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) condition: (binary_expression left: (identifier) right: (number_literal)) update: (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))) body: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))))) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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)))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))) right: (number_literal)))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (identifier)) right: (identifier))) consequence: (compound_statement (expression_statement (call_expression function: (identifier) arguments: (argument_list (identifier) (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (identifier)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (binary_expression left: (binary_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))) right: (number_literal)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (unary_expression argument: (subscript_expression argument: (identifier) index: (number_literal)))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (if_statement condition: (parenthesized_expression (binary_expression left: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))) right: (binary_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal))))) consequence: (compound_statement (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (identifier))))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator declarator: (abstract_pointer_declarator))) value: (parenthesized_expression (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (unary_expression argument: (identifier))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (number_literal))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (identifier)) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal))))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type)) value: (parenthesized_expression (binary_expression left: (identifier) right: (number_literal))))))))) (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (binary_expression left: (subscript_expression argument: (identifier) index: (number_literal)) right: (identifier)) right: (number_literal))))))) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (subscript_expression argument: (identifier) index: (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: (identifier))))) (labeled_statement label: (statement_identifier) (if_statement condition: (parenthesized_expression (binary_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (number_literal)))) consequence: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (do_statement body: (compound_statement (expression_statement (assignment_expression left: (identifier) right: (pointer_expression argument: (identifier)))) (expression_statement (assignment_expression left: (identifier) right: (cast_expression type: (type_descriptor type: (primitive_type) declarator: (abstract_pointer_declarator)) value: (parenthesized_expression (binary_expression left: (cast_expression type: (type_descriptor type: (primitive_type)) value: (identifier)) right: (number_literal)))))) (expression_statement (assignment_expression left: (identifier) right: (binary_expression left: (identifier) right: (number_literal)))) (expression_statement (assignment_expression left: (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier))) right: (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: (cast_expression type: (type_descriptor type: (type_identifier)) value: (identifier)))))))) (expression_statement (assignment_expression left: (identifier) right: (identifier)))) condition: (parenthesized_expression (binary_expression left: (identifier) right: (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 (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (identifier)))) arguments: (argument_list))) (expression_statement (call_expression function: (parenthesized_expression (pointer_expression argument: (cast_expression type: (type_descriptor type: (type_identifier) declarator: (abstract_pointer_declarator)) value: (subscript_expression argument: (identifier) index: (number_literal))))) arguments: (argument_list))) (return_statement))))

void MASKED(undefined4 *param_1)

{
  bool bVar1;
  undefined *puVar2;
  undefined *puVar3;
  int iVar4;
  uint uVar5;
  byte bVar7;
  undefined1 *puVar6;
  int iVar8;
  undefined4 extraout_v1;
  int extraout_v1_00;
  undefined4 extraout_v1_01;
  int extraout_v1_02;
  undefined4 extraout_v1_03;
  int extraout_v1_04;
  undefined4 extraout_v1_05;
  int extraout_v1_06;
  undefined4 extraout_v1_07;
  int extraout_v1_08;
  undefined4 extraout_v1_09;
  int extraout_v1_10;
  undefined4 extraout_v1_11;
  int extraout_v1_12;
  undefined4 extraout_v1_13;
  int extraout_v1_14;
  undefined4 extraout_v1_15;
  int extraout_v1_16;
  undefined4 extraout_v1_17;
  int extraout_v1_18;
  undefined4 extraout_v1_19;
  int extraout_v1_20;
  undefined4 extraout_v1_21;
  int extraout_v1_22;
  undefined4 extraout_v1_23;
  int extraout_v1_24;
  undefined4 extraout_v1_25;
  int extraout_v1_26;
  undefined4 extraout_v1_27;
  int extraout_v1_28;
  undefined4 extraout_v1_29;
  int extraout_v1_30;
  int iVar9;
  byte bVar10;
  byte bVar11;
  uint uVar12;
  byte *pbVar13;
  uint uVar14;
  undefined4 uVar15;
  undefined4 *puVar16;
  uint uVar17;
  undefined1 *puVar18;
  undefined4 uVar19;
  undefined4 *puVar20;
  uint uVar21;
  undefined4 uVar22;
  int *piVar23;
  uint uVar24;
  int **ppiVar25;
  undefined4 *puVar26;
  undefined4 *puVar27;
  undefined4 *puVar28;
  byte *pbVar29;
  undefined4 *puVar30;
  int iVar31;
  undefined4 *puVar32;
  int *piVar33;
  int *piVar34;
  int *piVar35;
  int *piVar36;
  undefined4 *local_534;
  int *local_530;
  undefined4 auStack_52c [256];
  undefined4 auStack_12c [64];
  int local_2c;
  
  puVar2 = PTR___stack_chk_guard_000564b4;
  pbVar29 = (byte *)param_1[0x151];
  local_2c = *(int *)PTR___stack_chk_guard_000564b4;
  puVar30 = param_1 + 0xf;
  if (pbVar29 != (byte *)0x0) {
    puVar30 = auStack_12c;
  }
  iVar31 = param_1[0xb];
  if (iVar31 == 1) {
    piVar23 = (int *)param_1[0xc];
    local_530 = piVar23;
    if (piVar23 != (int *)0x0) {
      ppiVar25 = &local_530;
      do {
        puVar27 = (undefined4 *)piVar23[1];
        if (puVar27 != (undefined4 *)0x0) {
          puVar16 = (undefined4 *)*puVar27;
          if (puVar16 != (undefined4 *)0x0) {
            puVar20 = (undefined4 *)*puVar16;
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              piVar33 = (int *)puVar20[2];
              local_530[3] = (int)piVar33;
              local_530 = piVar33;
            }
            puVar20 = (undefined4 *)puVar16[1];
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              piVar33 = local_530;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 == (int *)0x0) {
                  piVar33 = (int *)puVar28[2];
                  local_530[3] = (int)piVar33;
                }
                else {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  iVar8 = piVar33[2];
                  local_530[3] = iVar8;
                  piVar33 = (int *)puVar28[2];
                  *(int **)(iVar8 + 0xc) = piVar33;
                }
              }
              local_530 = (int *)puVar20[2];
              piVar33[3] = (int)local_530;
            }
            piVar33 = (int *)puVar16[2];
            local_530[3] = (int)piVar33;
            local_530 = piVar33;
          }
          puVar16 = (undefined4 *)puVar27[1];
          piVar33 = local_530;
          if (puVar16 != (undefined4 *)0x0) {
            puVar20 = (undefined4 *)*puVar16;
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              piVar33 = (int *)puVar20[2];
              local_530[3] = (int)piVar33;
              local_530 = piVar33;
            }
            puVar20 = (undefined4 *)puVar16[1];
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[2];
                local_530[3] = (int)piVar33;
                local_530 = piVar33;
              }
              puVar28 = (undefined4 *)puVar20[1];
              if (puVar28 == (undefined4 *)0x0) {
                piVar33 = (int *)puVar20[2];
                local_530[3] = (int)piVar33;
                local_530 = piVar33;
              }
              else {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 == (int *)0x0) {
                  iVar8 = puVar28[2];
                  local_530[3] = iVar8;
                }
                else {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  iVar4 = piVar33[2];
                  local_530[3] = iVar4;
                  iVar8 = puVar28[2];
                  *(int *)(iVar4 + 0xc) = iVar8;
                }
                local_530 = (int *)puVar20[2];
                *(int **)(iVar8 + 0xc) = local_530;
              }
            }
            piVar33 = (int *)puVar16[2];
            local_530[3] = (int)piVar33;
          }
          local_530 = (int *)puVar27[2];
          piVar33[3] = (int)local_530;
        }
        piVar23 = (int *)piVar23[3];
      } while (piVar23 != (int *)0x0);
    }
    uVar21 = param_1[4];
    uVar14 = param_1[0xd];
    if (uVar21 - param_1[3] < uVar14) {
      _obstack_newchunk(param_1);
      puVar18 = (undefined1 *)param_1[2];
      puVar6 = (undefined1 *)(param_1[3] + uVar14);
      uVar21 = param_1[4];
      uVar14 = param_1[0xd];
      param_1[3] = puVar6;
      if (puVar6 == puVar18) goto LAB_00020968;
    }
    else {
      puVar18 = (undefined1 *)param_1[2];
      puVar6 = (undefined1 *)(param_1[3] + uVar14);
      param_1[3] = puVar6;
      if (puVar6 == puVar18) {
LAB_00020968:
        *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;
      }
    }
    uVar5 = (uint)(puVar6 + param_1[6]) & ~param_1[6];
    param_1[3] = uVar5;
    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {
      param_1[3] = uVar21;
      uVar5 = uVar21;
    }
    iVar8 = param_1[0xc];
    param_1[2] = uVar5;
    param_1[0x14f] = puVar18;
    if (0 < (int)uVar14) {
      *puVar18 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);
      iVar8 = *(int *)(iVar8 + 0xc);
      if (1 < (int)param_1[0xd]) {
        iVar4 = 1;
        do {
          puVar6 = (undefined1 *)(param_1[0x14f] + iVar4);
          iVar4 = iVar4 + 1;
          *puVar6 = *(undefined1 *)(*(int *)(iVar8 + 4) + 0xc);
          iVar8 = *(int *)(iVar8 + 0xc);
        } while (iVar4 < (int)param_1[0xd]);
      }
    }
    puVar20 = (undefined4 *)kwsalloc(param_1[0x151]);
    uVar19 = param_1[0xd];
    uVar15 = param_1[0x14f];
    puVar20[0x155] = PTR_LAB_00056238 + -0x47f8;
    kwsincr(puVar20,uVar15,uVar19);
    _obstack_free(param_1,0);
    puVar27 = puVar20;
    puVar16 = param_1;
    do {
      puVar32 = puVar16;
      puVar28 = puVar27;
      puVar27 = puVar28 + 4;
      uVar22 = puVar28[1];
      uVar19 = puVar28[2];
      uVar15 = puVar28[3];
      *puVar32 = *puVar28;
      puVar32[1] = uVar22;
      puVar32[2] = uVar19;
      puVar32[3] = uVar15;
      puVar3 = PTR_free_000564c0;
      puVar16 = puVar32 + 4;
    } while (puVar27 != puVar20 + 0x154);
    uVar15 = puVar28[5];
    puVar32[4] = *puVar27;
    puVar32[5] = uVar15;
    (*(code *)puVar3)(puVar20);
    iVar8 = 0xff;
    if ((int)param_1[0xd] < 0x100) {
      iVar8 = param_1[0xd];
    }
    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);
    piVar23 = (int *)param_1[0xc];
    local_530 = piVar23;
    if (piVar23 != (int *)0x0) goto LAB_0001d27c;
LAB_000206c8:
    for (iVar8 = piVar23[3]; iVar8 != 0; iVar8 = *(int *)(iVar8 + 0xc)) {
      while( true ) {
        iVar9 = *(int *)(*(int *)(iVar8 + 8) + 0x1c);
        iVar4 = *(int *)(iVar8 + 0x1c);
        if (iVar9 < *(int *)(iVar8 + 0x1c)) {
          *(int *)(iVar8 + 0x1c) = iVar9;
          iVar4 = iVar9;
        }
        if (*(int *)(iVar8 + 0x18) <= iVar4) break;
        *(int *)(iVar8 + 0x18) = iVar4;
        iVar8 = *(int *)(iVar8 + 0xc);
        if (iVar8 == 0) goto LAB_0001dfc8;
      }
    }
  }
  else {
    iVar8 = 0xff;
    if ((int)param_1[0xd] < 0x100) {
      iVar8 = param_1[0xd];
    }
    (*(code *)PTR_memset_000563f4)(puVar30,iVar8,0x100);
    piVar23 = (int *)param_1[0xc];
    local_530 = piVar23;
    if (piVar23 != (int *)0x0) {
LAB_0001d27c:
      ppiVar25 = &local_530;
      local_530 = piVar23;
      do {
        puVar27 = (undefined4 *)piVar23[1];
        if (puVar27 != (undefined4 *)0x0) {
          puVar16 = (undefined4 *)*puVar27;
          if (puVar16 != (undefined4 *)0x0) {
            puVar20 = (undefined4 *)*puVar16;
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              piVar33 = (int *)puVar20[2];
              local_530[3] = (int)piVar33;
              local_530 = piVar33;
            }
            puVar20 = (undefined4 *)puVar16[1];
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              piVar33 = local_530;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 == (int *)0x0) {
                  piVar33 = (int *)puVar28[2];
                  local_530[3] = (int)piVar33;
                }
                else {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  iVar8 = piVar33[2];
                  local_530[3] = iVar8;
                  piVar33 = (int *)puVar28[2];
                  *(int **)(iVar8 + 0xc) = piVar33;
                }
              }
              local_530 = (int *)puVar20[2];
              piVar33[3] = (int)local_530;
            }
            piVar33 = (int *)puVar16[2];
            local_530[3] = (int)piVar33;
            local_530 = piVar33;
          }
          puVar16 = (undefined4 *)puVar27[1];
          piVar33 = local_530;
          if (puVar16 != (undefined4 *)0x0) {
            puVar20 = (undefined4 *)*puVar16;
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar34 = (int *)puVar28[1];
                piVar33 = local_530;
                if (piVar34 != (int *)0x0) {
                  if (*piVar34 != 0) {
                    FUN_0001afec(*piVar34,ppiVar25);
                  }
                  if (piVar34[1] != 0) {
                    FUN_0001afec(piVar34[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar34[2];
                  local_530[3] = (int)piVar33;
                }
                local_530 = (int *)puVar28[2];
                piVar33[3] = (int)local_530;
              }
              puVar28 = (undefined4 *)puVar20[1];
              piVar33 = local_530;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  piVar34 = local_530;
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                    piVar34 = local_530;
                  }
                  local_530 = (int *)piVar33[2];
                  piVar34[3] = (int)local_530;
                }
                piVar33 = (int *)puVar28[2];
                local_530[3] = (int)piVar33;
              }
              local_530 = (int *)puVar20[2];
              piVar33[3] = (int)local_530;
            }
            puVar20 = (undefined4 *)puVar16[1];
            if (puVar20 != (undefined4 *)0x0) {
              puVar28 = (undefined4 *)*puVar20;
              if (puVar28 != (undefined4 *)0x0) {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[2];
                local_530[3] = (int)piVar33;
                local_530 = piVar33;
              }
              puVar28 = (undefined4 *)puVar20[1];
              if (puVar28 == (undefined4 *)0x0) {
                piVar33 = (int *)puVar20[2];
                local_530[3] = (int)piVar33;
                local_530 = piVar33;
              }
              else {
                piVar33 = (int *)*puVar28;
                if (piVar33 != (int *)0x0) {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  piVar33 = (int *)piVar33[2];
                  local_530[3] = (int)piVar33;
                  local_530 = piVar33;
                }
                piVar33 = (int *)puVar28[1];
                if (piVar33 == (int *)0x0) {
                  iVar8 = puVar28[2];
                  local_530[3] = iVar8;
                }
                else {
                  if (*piVar33 != 0) {
                    FUN_0001afec(*piVar33,ppiVar25);
                  }
                  if (piVar33[1] != 0) {
                    FUN_0001afec(piVar33[1],ppiVar25);
                  }
                  iVar4 = piVar33[2];
                  local_530[3] = iVar4;
                  iVar8 = puVar28[2];
                  *(int *)(iVar4 + 0xc) = iVar8;
                }
                local_530 = (int *)puVar20[2];
                *(int **)(iVar8 + 0xc) = local_530;
              }
            }
            piVar33 = (int *)puVar16[2];
            local_530[3] = (int)piVar33;
          }
          local_530 = (int *)puVar27[2];
          puVar27 = (undefined4 *)piVar23[1];
          iVar8 = piVar23[5];
          piVar33[3] = (int)local_530;
          if (puVar27 != (undefined4 *)0x0) {
            puVar16 = (undefined4 *)*puVar27;
            if (puVar16 != (undefined4 *)0x0) {
              puVar20 = (undefined4 *)*puVar16;
              if (puVar20 != (undefined4 *)0x0) {
                puVar28 = (undefined4 *)*puVar20;
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1,puVar30);
                    iVar8 = extraout_v1_00;
                    if (extraout_v1_00 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_00;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_01,puVar30);
                    iVar8 = extraout_v1_02;
                    if (extraout_v1_02 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_02;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                puVar28 = (undefined4 *)puVar20[1];
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_03,puVar30);
                    iVar8 = extraout_v1_04;
                    if (extraout_v1_04 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_04;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_05,puVar30);
                    iVar8 = extraout_v1_06;
                    if (extraout_v1_06 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_06;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {
                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;
                }
              }
              puVar20 = (undefined4 *)puVar16[1];
              if (puVar20 != (undefined4 *)0x0) {
                puVar28 = (undefined4 *)*puVar20;
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_07,puVar30);
                    iVar8 = extraout_v1_08;
                    if (extraout_v1_08 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_08;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_09,puVar30);
                    iVar8 = extraout_v1_10;
                    if (extraout_v1_10 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_10;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                puVar28 = (undefined4 *)puVar20[1];
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_11,puVar30);
                    iVar8 = extraout_v1_12;
                    if (extraout_v1_12 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_12;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_13,puVar30);
                    iVar8 = extraout_v1_14;
                    if (extraout_v1_14 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_14;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {
                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;
                }
              }
              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {
                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;
              }
            }
            puVar16 = (undefined4 *)puVar27[1];
            if (puVar16 != (undefined4 *)0x0) {
              puVar20 = (undefined4 *)*puVar16;
              if (puVar20 != (undefined4 *)0x0) {
                puVar28 = (undefined4 *)*puVar20;
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_15,puVar30);
                    iVar8 = extraout_v1_16;
                    if (extraout_v1_16 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_16;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_17,puVar30);
                    iVar8 = extraout_v1_18;
                    if (extraout_v1_18 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_18;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                puVar28 = (undefined4 *)puVar20[1];
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_19,puVar30);
                    iVar8 = extraout_v1_20;
                    if (extraout_v1_20 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_20;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_21,puVar30);
                    iVar8 = extraout_v1_22;
                    if (extraout_v1_22 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_22;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {
                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;
                }
              }
              puVar20 = (undefined4 *)puVar16[1];
              if (puVar20 != (undefined4 *)0x0) {
                puVar28 = (undefined4 *)*puVar20;
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_23,puVar30);
                    iVar8 = extraout_v1_24;
                    if (extraout_v1_24 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_24;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_25,puVar30);
                    iVar8 = extraout_v1_26;
                    if (extraout_v1_26 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_26;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                puVar28 = (undefined4 *)puVar20[1];
                if (puVar28 != (undefined4 *)0x0) {
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_27,puVar30);
                    iVar8 = extraout_v1_28;
                    if (extraout_v1_28 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_28;
                    }
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) {
                    FUN_0001adec(*puVar32,iVar8,puVar30);
                    FUN_0001adec(puVar32[1],extraout_v1_29,puVar30);
                    iVar8 = extraout_v1_30;
                    if (extraout_v1_30 <
                        (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3))) {
                      *(byte *)((int)puVar30 + (uint)*(byte *)(puVar32 + 3)) = (byte)extraout_v1_30;
                    }
                  }
                  if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3))) {
                    *(byte *)((int)puVar30 + (uint)*(byte *)(puVar28 + 3)) = (byte)iVar8;
                  }
                }
                if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3))) {
                  *(byte *)((int)puVar30 + (uint)*(byte *)(puVar20 + 3)) = (byte)iVar8;
                }
              }
              if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3))) {
                *(byte *)((int)puVar30 + (uint)*(byte *)(puVar16 + 3)) = (byte)iVar8;
              }
            }
            if (iVar8 < (int)(uint)*(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3))) {
              *(byte *)((int)puVar30 + (uint)*(byte *)(puVar27 + 3)) = (byte)iVar8;
            }
            puVar27 = (undefined4 *)piVar23[1];
          }
        }
        FUN_0001acd0(puVar27,piVar23[4],param_1[0xc],iVar31 == 1);
        if (iVar31 == 1) {
          iVar8 = param_1[0xd];
          iVar4 = piVar23[4];
          piVar23[6] = iVar8;
          piVar23[7] = iVar8;
          if (iVar4 == 0) goto LAB_0001dfb4;
          puVar27 = (undefined4 *)piVar23[1];
          iVar8 = *piVar23;
          do {
            if (puVar27 != (undefined4 *)0x0) {
              puVar16 = (undefined4 *)*puVar27;
              piVar33 = *(int **)(iVar4 + 4);
              if (puVar16 == (undefined4 *)0x0) {
                puVar16 = (undefined4 *)puVar27[1];
                if (puVar16 == (undefined4 *)0x0) {
                  if (piVar33 == (int *)0x0) goto LAB_0001e864;
                  bVar7 = *(byte *)(piVar33 + 3);
                }
                else {
LAB_0001e8cc:
                  puVar20 = (undefined4 *)*puVar16;
                  if (puVar20 == (undefined4 *)0x0) {
                    puVar20 = (undefined4 *)puVar16[1];
                    if (puVar20 == (undefined4 *)0x0) {
                      if (piVar33 == (int *)0x0) goto LAB_0001e864;
                      bVar10 = *(byte *)(piVar33 + 3);
                    }
                    else {
LAB_0001eaa0:
                      puVar28 = (undefined4 *)*puVar20;
                      if (puVar28 != (undefined4 *)0x0) {
                        puVar32 = (undefined4 *)*puVar28;
                        if (puVar32 == (undefined4 *)0x0) {
                          piVar34 = (int *)puVar28[1];
                          if (piVar34 == (int *)0x0) {
                            if (piVar33 == (int *)0x0) goto LAB_0001e864;
                            bVar7 = *(byte *)(piVar33 + 3);
LAB_0001fbdc:
                            bVar10 = *(byte *)(puVar28 + 3);
                            piVar34 = piVar33;
                            bVar11 = bVar7;
joined_r0x0001fbe0:
                            while (bVar7 != bVar10) {
                              piVar35 = (int *)piVar34[1];
                              if (bVar10 < bVar7) {
                                piVar35 = (int *)*piVar34;
                              }
                              if (piVar35 == (int *)0x0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
                              piVar34 = piVar35;
                              bVar7 = *(byte *)(piVar35 + 3);
                            }
                            puVar28 = (undefined4 *)puVar20[1];
                            if (puVar28 != (undefined4 *)0x0) goto LAB_0001efdc;
                            bVar7 = *(byte *)(puVar20 + 3);
                            piVar34 = piVar33;
                            bVar10 = bVar11;
                            goto joined_r0x0001fb94;
                          }
LAB_0001f218:
                          puVar32 = (undefined4 *)*piVar34;
                          if (puVar32 == (undefined4 *)0x0) {
                            local_534 = (undefined4 *)piVar34[1];
                            if (local_534 == (undefined4 *)0x0) {
                              if (piVar33 != (int *)0x0) {
                                bVar7 = *(byte *)(piVar33 + 3);
                                goto LAB_0001f8cc;
                              }
                            }
                            else {
                              iVar9 = FUN_0001ae90(piVar33,*local_534);
                              if (iVar9 != 0) goto LAB_0001f764;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*puVar32);
                            if (((iVar9 != 0) &&
                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&
                               (piVar33 != (int *)0x0)) {
                              bVar7 = *(byte *)(piVar33 + 3);
                              bVar10 = bVar7;
                              piVar35 = piVar33;
                              while (*(byte *)(puVar32 + 3) != bVar10) {
                                piVar36 = (int *)*piVar35;
                                piVar35 = (int *)piVar35[1];
                                if (*(byte *)(puVar32 + 3) < bVar10) {
                                  piVar35 = piVar36;
                                }
                                if (piVar35 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar35 + 3);
                              }
                              local_534 = (undefined4 *)piVar34[1];
                              if (local_534 != (undefined4 *)0x0) {
                                iVar9 = FUN_0001ae90(piVar33,*local_534);
                                if (iVar9 == 0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
LAB_0001f764:
                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);
                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;
                                bVar7 = *(byte *)(piVar33 + 3);
                                bVar10 = bVar7;
                                piVar35 = piVar33;
                                while (bVar10 != *(byte *)(local_534 + 3)) {
                                  piVar36 = (int *)*piVar35;
                                  piVar35 = (int *)piVar35[1];
                                  if (*(byte *)(local_534 + 3) < bVar10) {
                                    piVar35 = piVar36;
                                  }
                                  if (piVar35 == (int *)0x0) {
                                    iVar9 = piVar23[5];
                                    goto LAB_0001e868;
                                  }
                                  bVar10 = *(byte *)(piVar35 + 3);
                                }
                              }
LAB_0001f8cc:
                              piVar35 = piVar33;
                              bVar10 = bVar7;
                              while (bVar10 != *(byte *)(piVar34 + 3)) {
                                piVar36 = (int *)*piVar35;
                                piVar35 = (int *)piVar35[1];
                                if (*(byte *)(piVar34 + 3) < bVar10) {
                                  piVar35 = piVar36;
                                }
                                if (piVar35 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar35 + 3);
                              }
                              goto LAB_0001fbdc;
                            }
                          }
                        }
                        else {
                          iVar9 = FUN_0001ae90(piVar33,*puVar32);
                          if (iVar9 != 0) {
                            puVar26 = (undefined4 *)puVar32[1];
                            if (puVar26 == (undefined4 *)0x0) {
                              if (piVar33 != (int *)0x0) {
                                bVar7 = *(byte *)(piVar33 + 3);
                                goto LAB_0001f9c8;
                              }
                            }
                            else {
                              iVar9 = FUN_0001ae90(piVar33,*puVar26);
                              if (((iVar9 != 0) &&
                                  (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&
                                 (piVar33 != (int *)0x0)) {
                                bVar7 = *(byte *)(piVar33 + 3);
                                bVar10 = bVar7;
                                piVar34 = piVar33;
                                while (*(byte *)(puVar26 + 3) != bVar10) {
                                  piVar35 = (int *)*piVar34;
                                  piVar34 = (int *)piVar34[1];
                                  if (*(byte *)(puVar26 + 3) < bVar10) {
                                    piVar34 = piVar35;
                                  }
                                  if (piVar34 == (int *)0x0) {
                                    iVar9 = piVar23[5];
                                    goto LAB_0001e868;
                                  }
                                  bVar10 = *(byte *)(piVar34 + 3);
                                }
LAB_0001f9c8:
                                piVar34 = piVar33;
                                bVar10 = bVar7;
                                while (bVar10 != *(byte *)(puVar32 + 3)) {
                                  piVar35 = (int *)*piVar34;
                                  piVar34 = (int *)piVar34[1];
                                  if (*(byte *)(puVar32 + 3) < bVar10) {
                                    piVar34 = piVar35;
                                  }
                                  if (piVar34 == (int *)0x0) {
                                    iVar9 = piVar23[5];
                                    goto LAB_0001e868;
                                  }
                                  bVar10 = *(byte *)(piVar34 + 3);
                                }
                                piVar34 = (int *)puVar28[1];
                                if (piVar34 != (int *)0x0) goto LAB_0001f218;
                                bVar10 = *(byte *)(puVar28 + 3);
                                piVar34 = piVar33;
                                bVar11 = bVar7;
                                goto joined_r0x0001fbe0;
                              }
                            }
                          }
                        }
LAB_0001e864:
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      puVar28 = (undefined4 *)puVar20[1];
                      if (puVar28 == (undefined4 *)0x0) {
                        if (piVar33 == (int *)0x0) goto LAB_0001e864;
                        bVar11 = *(byte *)(piVar33 + 3);
                      }
                      else {
LAB_0001efdc:
                        piVar34 = (int *)*puVar28;
                        if (piVar34 != (int *)0x0) {
                          puVar32 = (undefined4 *)*piVar34;
                          if (puVar32 == (undefined4 *)0x0) {
                            local_534 = (undefined4 *)piVar34[1];
                            if (local_534 == (undefined4 *)0x0) {
                              if (piVar33 != (int *)0x0) {
                                bVar7 = *(byte *)(piVar33 + 3);
                                goto LAB_0001f918;
                              }
                            }
                            else {
                              iVar9 = FUN_0001ae90(piVar33,*local_534);
                              if (iVar9 != 0) goto LAB_0001f654;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*puVar32);
                            if (((iVar9 != 0) &&
                                (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&
                               (piVar33 != (int *)0x0)) {
                              bVar7 = *(byte *)(piVar33 + 3);
                              bVar10 = bVar7;
                              piVar35 = piVar33;
                              while (*(byte *)(puVar32 + 3) != bVar10) {
                                piVar36 = (int *)*piVar35;
                                piVar35 = (int *)piVar35[1];
                                if (*(byte *)(puVar32 + 3) < bVar10) {
                                  piVar35 = piVar36;
                                }
                                if (piVar35 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar35 + 3);
                              }
                              local_534 = (undefined4 *)piVar34[1];
                              if (local_534 != (undefined4 *)0x0) {
                                iVar9 = FUN_0001ae90(piVar33,*local_534);
                                if (iVar9 == 0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
LAB_0001f654:
                                iVar9 = FUN_0001ae90(piVar33,local_534[1]);
                                if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;
                                bVar7 = *(byte *)(piVar33 + 3);
                                bVar10 = bVar7;
                                piVar35 = piVar33;
                                while (bVar10 != *(byte *)(local_534 + 3)) {
                                  piVar36 = (int *)*piVar35;
                                  piVar35 = (int *)piVar35[1];
                                  if (*(byte *)(local_534 + 3) < bVar10) {
                                    piVar35 = piVar36;
                                  }
                                  if (piVar35 == (int *)0x0) {
                                    iVar9 = piVar23[5];
                                    goto LAB_0001e868;
                                  }
                                  bVar10 = *(byte *)(piVar35 + 3);
                                }
                              }
LAB_0001f918:
                              piVar35 = piVar33;
                              bVar10 = bVar7;
                              while (bVar10 != *(byte *)(piVar34 + 3)) {
                                piVar36 = (int *)*piVar35;
                                piVar35 = (int *)piVar35[1];
                                if (*(byte *)(piVar34 + 3) < bVar10) {
                                  piVar35 = piVar36;
                                }
                                if (piVar35 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar35 + 3);
                              }
                              piVar34 = (int *)puVar28[1];
                              if (piVar34 != (int *)0x0) goto LAB_0001f3d4;
                              bVar10 = *(byte *)(puVar28 + 3);
                              piVar34 = piVar33;
                              bVar11 = bVar7;
                              goto joined_r0x00020768;
                            }
                          }
                          goto LAB_0001e864;
                        }
                        piVar34 = (int *)puVar28[1];
                        if (piVar34 == (int *)0x0) {
                          if (piVar33 == (int *)0x0) goto LAB_0001e864;
                          bVar7 = *(byte *)(piVar33 + 3);
                        }
                        else {
LAB_0001f3d4:
                          puVar32 = (undefined4 *)*piVar34;
                          if (puVar32 == (undefined4 *)0x0) {
                            puVar32 = (undefined4 *)piVar34[1];
                            if (puVar32 == (undefined4 *)0x0) {
                              if (piVar33 != (int *)0x0) {
                                bVar10 = *(byte *)(piVar33 + 3);
                                goto LAB_00020814;
                              }
                            }
                            else {
LAB_0001fcfc:
                              iVar9 = FUN_0001ae90(piVar33,*puVar32);
                              if (((iVar9 != 0) &&
                                  (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&
                                 (piVar33 != (int *)0x0)) {
                                bVar10 = *(byte *)(piVar33 + 3);
                                bVar7 = bVar10;
                                piVar35 = piVar33;
                                while (*(byte *)(puVar32 + 3) != bVar7) {
                                  piVar36 = (int *)*piVar35;
                                  piVar35 = (int *)piVar35[1];
                                  if (*(byte *)(puVar32 + 3) < bVar7) {
                                    piVar35 = piVar36;
                                  }
                                  if (piVar35 == (int *)0x0) {
                                    iVar9 = piVar23[5];
                                    goto LAB_0001e868;
                                  }
                                  bVar7 = *(byte *)(piVar35 + 3);
                                }
LAB_00020814:
                                bVar11 = *(byte *)(piVar34 + 3);
                                piVar34 = piVar33;
                                bVar7 = bVar10;
                                goto joined_r0x00020818;
                              }
                            }
                            goto LAB_0001e864;
                          }
                          iVar9 = FUN_0001ae90(piVar33,*puVar32);
                          if (((iVar9 == 0) ||
                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||
                             (piVar33 == (int *)0x0)) goto LAB_0001e864;
                          bVar10 = *(byte *)(piVar33 + 3);
                          bVar7 = bVar10;
                          piVar35 = piVar33;
                          while (bVar7 != *(byte *)(puVar32 + 3)) {
                            piVar36 = (int *)*piVar35;
                            piVar35 = (int *)piVar35[1];
                            if (*(byte *)(puVar32 + 3) < bVar7) {
                              piVar35 = piVar36;
                            }
                            if (piVar35 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            bVar7 = *(byte *)(piVar35 + 3);
                          }
                          puVar32 = (undefined4 *)piVar34[1];
                          if (puVar32 != (undefined4 *)0x0) goto LAB_0001fcfc;
                          bVar11 = *(byte *)(piVar34 + 3);
                          piVar34 = piVar33;
                          bVar7 = bVar10;
joined_r0x00020818:
                          while (bVar10 != bVar11) {
                            piVar35 = (int *)piVar34[1];
                            if (bVar11 < bVar10) {
                              piVar35 = (int *)*piVar34;
                            }
                            if (piVar35 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            piVar34 = piVar35;
                            bVar10 = *(byte *)(piVar35 + 3);
                          }
                        }
                        bVar10 = *(byte *)(puVar28 + 3);
                        piVar34 = piVar33;
                        bVar11 = bVar7;
joined_r0x00020768:
                        while (bVar10 != bVar7) {
                          piVar35 = (int *)piVar34[1];
                          if (bVar10 < bVar7) {
                            piVar35 = (int *)*piVar34;
                          }
                          if (piVar35 == (int *)0x0) {
                            iVar9 = piVar23[5];
                            goto LAB_0001e868;
                          }
                          piVar34 = piVar35;
                          bVar7 = *(byte *)(piVar35 + 3);
                        }
                      }
                      bVar7 = *(byte *)(puVar20 + 3);
                      piVar34 = piVar33;
                      bVar10 = bVar11;
joined_r0x0001fb94:
                      while (bVar7 != bVar11) {
                        piVar35 = (int *)piVar34[1];
                        if (bVar7 < bVar11) {
                          piVar35 = (int *)*piVar34;
                        }
                        if (piVar35 == (int *)0x0) {
                          iVar9 = piVar23[5];
                          goto LAB_0001e868;
                        }
                        piVar34 = piVar35;
                        bVar11 = *(byte *)(piVar35 + 3);
                      }
                    }
                    bVar11 = *(byte *)(puVar16 + 3);
                    piVar34 = piVar33;
                    bVar7 = bVar10;
                  }
                  else {
                    puVar28 = (undefined4 *)*puVar20;
                    if (puVar28 == (undefined4 *)0x0) {
                      puVar28 = (undefined4 *)puVar20[1];
                      if (puVar28 == (undefined4 *)0x0) {
                        if (piVar33 == (int *)0x0) goto LAB_0001e864;
                        bVar7 = *(byte *)(piVar33 + 3);
LAB_0001f374:
                        bVar11 = *(byte *)(puVar20 + 3);
                        piVar34 = piVar33;
                        bVar10 = bVar7;
                        goto joined_r0x0001f378;
                      }
LAB_0001eb64:
                      puVar32 = (undefined4 *)*puVar28;
                      if (puVar32 == (undefined4 *)0x0) {
                        piVar34 = (int *)puVar28[1];
                        if (piVar34 == (int *)0x0) {
                          if (piVar33 == (int *)0x0) goto LAB_0001e864;
                          bVar10 = *(byte *)(piVar33 + 3);
LAB_0001fc3c:
                          bVar11 = *(byte *)(puVar28 + 3);
                          piVar34 = piVar33;
                          bVar7 = bVar10;
joined_r0x0001fc40:
                          while (bVar10 != bVar11) {
                            piVar35 = (int *)piVar34[1];
                            if (bVar11 < bVar10) {
                              piVar35 = (int *)*piVar34;
                            }
                            if (piVar35 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            piVar34 = piVar35;
                            bVar10 = *(byte *)(piVar35 + 3);
                          }
                          goto LAB_0001f374;
                        }
LAB_0001f180:
                        puVar32 = (undefined4 *)*piVar34;
                        if (puVar32 == (undefined4 *)0x0) {
                          local_534 = (undefined4 *)piVar34[1];
                          if (local_534 == (undefined4 *)0x0) {
                            if (piVar33 != (int *)0x0) {
                              bVar10 = *(byte *)(piVar33 + 3);
                              goto LAB_0001f880;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*local_534);
                            if (iVar9 != 0) goto LAB_0001f6dc;
                          }
                        }
                        else {
                          iVar9 = FUN_0001ae90(piVar33,*puVar32);
                          if (((iVar9 != 0) &&
                              (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0)) &&
                             (piVar33 != (int *)0x0)) {
                            bVar10 = *(byte *)(piVar33 + 3);
                            bVar7 = bVar10;
                            piVar35 = piVar33;
                            while (bVar7 != *(byte *)(puVar32 + 3)) {
                              piVar36 = (int *)*piVar35;
                              piVar35 = (int *)piVar35[1];
                              if (*(byte *)(puVar32 + 3) < bVar7) {
                                piVar35 = piVar36;
                              }
                              if (piVar35 == (int *)0x0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
                              bVar7 = *(byte *)(piVar35 + 3);
                            }
                            local_534 = (undefined4 *)piVar34[1];
                            if (local_534 != (undefined4 *)0x0) {
                              iVar9 = FUN_0001ae90(piVar33,*local_534);
                              if (iVar9 == 0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
LAB_0001f6dc:
                              iVar9 = FUN_0001ae90(piVar33,local_534[1]);
                              if ((iVar9 == 0) || (piVar33 == (int *)0x0)) goto LAB_0001e864;
                              bVar10 = *(byte *)(piVar33 + 3);
                              bVar7 = bVar10;
                              piVar35 = piVar33;
                              while (*(byte *)(local_534 + 3) != bVar7) {
                                piVar36 = (int *)*piVar35;
                                piVar35 = (int *)piVar35[1];
                                if (*(byte *)(local_534 + 3) < bVar7) {
                                  piVar35 = piVar36;
                                }
                                if (piVar35 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar7 = *(byte *)(piVar35 + 3);
                              }
                            }
LAB_0001f880:
                            piVar35 = piVar33;
                            bVar7 = bVar10;
                            while (*(byte *)(piVar34 + 3) != bVar7) {
                              piVar36 = (int *)*piVar35;
                              piVar35 = (int *)piVar35[1];
                              if (*(byte *)(piVar34 + 3) < bVar7) {
                                piVar35 = piVar36;
                              }
                              if (piVar35 == (int *)0x0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
                              bVar7 = *(byte *)(piVar35 + 3);
                            }
                            goto LAB_0001fc3c;
                          }
                        }
                      }
                      else {
                        iVar9 = FUN_0001ae90(piVar33,*puVar32);
                        if (iVar9 != 0) {
                          puVar26 = (undefined4 *)puVar32[1];
                          if (puVar26 == (undefined4 *)0x0) {
                            if (piVar33 != (int *)0x0) {
                              bVar10 = *(byte *)(piVar33 + 3);
                              goto LAB_0001faac;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*puVar26);
                            if (((iVar9 != 0) &&
                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&
                               (piVar33 != (int *)0x0)) {
                              bVar10 = *(byte *)(piVar33 + 3);
                              bVar7 = bVar10;
                              piVar34 = piVar33;
                              while (bVar7 != *(byte *)(puVar26 + 3)) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar26 + 3) < bVar7) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar7 = *(byte *)(piVar34 + 3);
                              }
LAB_0001faac:
                              piVar34 = piVar33;
                              bVar7 = bVar10;
                              while (*(byte *)(puVar32 + 3) != bVar7) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar32 + 3) < bVar7) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar7 = *(byte *)(piVar34 + 3);
                              }
                              piVar34 = (int *)puVar28[1];
                              if (piVar34 != (int *)0x0) goto LAB_0001f180;
                              bVar11 = *(byte *)(puVar28 + 3);
                              piVar34 = piVar33;
                              bVar7 = bVar10;
                              goto joined_r0x0001fc40;
                            }
                          }
                        }
                      }
                      goto LAB_0001e864;
                    }
                    puVar32 = (undefined4 *)*puVar28;
                    if (puVar32 == (undefined4 *)0x0) {
                      puVar32 = (undefined4 *)puVar28[1];
                      if (puVar32 == (undefined4 *)0x0) {
                        if (piVar33 != (int *)0x0) {
                          bVar10 = *(byte *)(piVar33 + 3);
LAB_0001f46c:
                          bVar11 = *(byte *)(puVar28 + 3);
                          piVar34 = piVar33;
                          bVar7 = bVar10;
                          goto joined_r0x0001f470;
                        }
                      }
                      else {
LAB_0001ed6c:
                        iVar9 = FUN_0001ae90(piVar33,*puVar32);
                        if (iVar9 != 0) {
                          puVar26 = (undefined4 *)puVar32[1];
                          if (puVar26 == (undefined4 *)0x0) {
                            if (piVar33 != (int *)0x0) {
                              bVar10 = *(byte *)(piVar33 + 3);
                              goto LAB_0001fb44;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*puVar26);
                            if (((iVar9 != 0) &&
                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&
                               (piVar33 != (int *)0x0)) {
                              bVar10 = *(byte *)(piVar33 + 3);
                              bVar7 = bVar10;
                              piVar34 = piVar33;
                              while (bVar7 != *(byte *)(puVar26 + 3)) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar26 + 3) < bVar7) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar7 = *(byte *)(piVar34 + 3);
                              }
LAB_0001fb44:
                              piVar34 = piVar33;
                              bVar7 = bVar10;
                              while (*(byte *)(puVar32 + 3) != bVar7) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar32 + 3) < bVar7) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar7 = *(byte *)(piVar34 + 3);
                              }
                              goto LAB_0001f46c;
                            }
                          }
                        }
                      }
                      goto LAB_0001e864;
                    }
                    iVar9 = FUN_0001ae90(piVar33,*puVar32);
                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||
                       (piVar33 == (int *)0x0)) goto LAB_0001e864;
                    bVar10 = *(byte *)(piVar33 + 3);
                    bVar7 = bVar10;
                    piVar34 = piVar33;
                    while (*(byte *)(puVar32 + 3) != bVar7) {
                      piVar35 = (int *)*piVar34;
                      piVar34 = (int *)piVar34[1];
                      if (*(byte *)(puVar32 + 3) < bVar7) {
                        piVar34 = piVar35;
                      }
                      if (piVar34 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      bVar7 = *(byte *)(piVar34 + 3);
                    }
                    puVar32 = (undefined4 *)puVar28[1];
                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ed6c;
                    bVar11 = *(byte *)(puVar28 + 3);
                    piVar34 = piVar33;
                    bVar7 = bVar10;
joined_r0x0001f470:
                    while (bVar10 != bVar11) {
                      piVar35 = (int *)piVar34[1];
                      if (bVar11 < bVar10) {
                        piVar35 = (int *)*piVar34;
                      }
                      if (piVar35 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      piVar34 = piVar35;
                      bVar10 = *(byte *)(piVar35 + 3);
                    }
                    puVar28 = (undefined4 *)puVar20[1];
                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001eb64;
                    bVar11 = *(byte *)(puVar20 + 3);
                    piVar34 = piVar33;
                    bVar10 = bVar7;
joined_r0x0001f378:
                    while (bVar7 != bVar11) {
                      piVar35 = (int *)piVar34[1];
                      if (bVar11 < bVar7) {
                        piVar35 = (int *)*piVar34;
                      }
                      if (piVar35 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      piVar34 = piVar35;
                      bVar7 = *(byte *)(piVar35 + 3);
                    }
                    puVar20 = (undefined4 *)puVar16[1];
                    if (puVar20 != (undefined4 *)0x0) goto LAB_0001eaa0;
                    bVar11 = *(byte *)(puVar16 + 3);
                    piVar34 = piVar33;
                    bVar7 = bVar10;
                  }
                  while (bVar11 != bVar10) {
                    piVar35 = (int *)piVar34[1];
                    if (bVar11 < bVar10) {
                      piVar35 = (int *)*piVar34;
                    }
                    if (piVar35 == (int *)0x0) {
                      iVar9 = piVar23[5];
                      goto LAB_0001e868;
                    }
                    piVar34 = piVar35;
                    bVar10 = *(byte *)(piVar35 + 3);
                  }
                }
                bVar10 = *(byte *)(puVar27 + 3);
              }
              else {
                puVar20 = (undefined4 *)*puVar16;
                if (puVar20 == (undefined4 *)0x0) {
                  puVar20 = (undefined4 *)puVar16[1];
                  if (puVar20 == (undefined4 *)0x0) {
                    if (piVar33 == (int *)0x0) goto LAB_0001e864;
                    bVar10 = *(byte *)(piVar33 + 3);
LAB_0001ef7c:
                    bVar11 = *(byte *)(puVar16 + 3);
                    piVar34 = piVar33;
                    bVar7 = bVar10;
                    goto joined_r0x0001ef80;
                  }
LAB_0001e974:
                  puVar28 = (undefined4 *)*puVar20;
                  if (puVar28 != (undefined4 *)0x0) {
                    puVar32 = (undefined4 *)*puVar28;
                    if (puVar32 == (undefined4 *)0x0) {
                      puVar32 = (undefined4 *)puVar28[1];
                      if (puVar32 == (undefined4 *)0x0) {
                        if (piVar33 != (int *)0x0) {
                          bVar7 = *(byte *)(piVar33 + 3);
LAB_0001f4cc:
                          bVar10 = *(byte *)(puVar28 + 3);
                          piVar34 = piVar33;
                          bVar11 = bVar7;
                          goto joined_r0x0001f4d0;
                        }
                      }
                      else {
LAB_0001ee1c:
                        iVar9 = FUN_0001ae90(piVar33,*puVar32);
                        if (iVar9 != 0) {
                          puVar26 = (undefined4 *)puVar32[1];
                          if (puVar26 == (undefined4 *)0x0) {
                            if (piVar33 != (int *)0x0) {
                              bVar7 = *(byte *)(piVar33 + 3);
                              goto LAB_0001faf8;
                            }
                          }
                          else {
                            iVar9 = FUN_0001ae90(piVar33,*puVar26);
                            if (((iVar9 != 0) &&
                                (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&
                               (piVar33 != (int *)0x0)) {
                              bVar7 = *(byte *)(piVar33 + 3);
                              bVar10 = bVar7;
                              piVar34 = piVar33;
                              while (bVar10 != *(byte *)(puVar26 + 3)) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar26 + 3) < bVar10) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar34 + 3);
                              }
LAB_0001faf8:
                              piVar34 = piVar33;
                              bVar10 = bVar7;
                              while (*(byte *)(puVar32 + 3) != bVar10) {
                                piVar35 = (int *)*piVar34;
                                piVar34 = (int *)piVar34[1];
                                if (*(byte *)(puVar32 + 3) < bVar10) {
                                  piVar34 = piVar35;
                                }
                                if (piVar34 == (int *)0x0) {
                                  iVar9 = piVar23[5];
                                  goto LAB_0001e868;
                                }
                                bVar10 = *(byte *)(piVar34 + 3);
                              }
                              goto LAB_0001f4cc;
                            }
                          }
                        }
                      }
                      goto LAB_0001e864;
                    }
                    iVar9 = FUN_0001ae90(piVar33,*puVar32);
                    if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||
                       (piVar33 == (int *)0x0)) goto LAB_0001e864;
                    bVar7 = *(byte *)(piVar33 + 3);
                    bVar10 = bVar7;
                    piVar34 = piVar33;
                    while (bVar10 != *(byte *)(puVar32 + 3)) {
                      piVar35 = (int *)*piVar34;
                      piVar34 = (int *)piVar34[1];
                      if (*(byte *)(puVar32 + 3) < bVar10) {
                        piVar34 = piVar35;
                      }
                      if (piVar34 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      bVar10 = *(byte *)(piVar34 + 3);
                    }
                    puVar32 = (undefined4 *)puVar28[1];
                    if (puVar32 != (undefined4 *)0x0) goto LAB_0001ee1c;
                    bVar10 = *(byte *)(puVar28 + 3);
                    piVar34 = piVar33;
                    bVar11 = bVar7;
joined_r0x0001f4d0:
                    while (bVar10 != bVar7) {
                      piVar35 = (int *)piVar34[1];
                      if (bVar10 < bVar7) {
                        piVar35 = (int *)*piVar34;
                      }
                      if (piVar35 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      piVar34 = piVar35;
                      bVar7 = *(byte *)(piVar35 + 3);
                    }
                    puVar28 = (undefined4 *)puVar20[1];
                    if (puVar28 != (undefined4 *)0x0) goto LAB_0001ec1c;
                    bVar7 = *(byte *)(puVar20 + 3);
                    piVar34 = piVar33;
                    bVar10 = bVar11;
joined_r0x0001f32c:
                    while (bVar7 != bVar11) {
                      piVar35 = (int *)piVar34[1];
                      if (bVar7 < bVar11) {
                        piVar35 = (int *)*piVar34;
                      }
                      if (piVar35 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      piVar34 = piVar35;
                      bVar11 = *(byte *)(piVar35 + 3);
                    }
                    goto LAB_0001ef7c;
                  }
                  puVar28 = (undefined4 *)puVar20[1];
                  if (puVar28 == (undefined4 *)0x0) {
                    if (piVar33 == (int *)0x0) goto LAB_0001e864;
                    bVar11 = *(byte *)(piVar33 + 3);
LAB_0001f328:
                    bVar7 = *(byte *)(puVar20 + 3);
                    piVar34 = piVar33;
                    bVar10 = bVar11;
                    goto joined_r0x0001f32c;
                  }
LAB_0001ec1c:
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 != (undefined4 *)0x0) {
                    iVar9 = FUN_0001ae90(piVar33,*puVar32);
                    if (iVar9 != 0) {
                      puVar26 = (undefined4 *)puVar32[1];
                      if (puVar26 == (undefined4 *)0x0) {
                        if (piVar33 != (int *)0x0) {
                          bVar7 = *(byte *)(piVar33 + 3);
                          goto LAB_0001fa14;
                        }
                      }
                      else {
                        iVar9 = FUN_0001ae90(piVar33,*puVar26);
                        if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0))
                           && (piVar33 != (int *)0x0)) {
                          bVar7 = *(byte *)(piVar33 + 3);
                          bVar10 = bVar7;
                          piVar34 = piVar33;
                          while (bVar10 != *(byte *)(puVar26 + 3)) {
                            piVar35 = (int *)*piVar34;
                            piVar34 = (int *)piVar34[1];
                            if (*(byte *)(puVar26 + 3) < bVar10) {
                              piVar34 = piVar35;
                            }
                            if (piVar34 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            bVar10 = *(byte *)(piVar34 + 3);
                          }
LAB_0001fa14:
                          piVar34 = piVar33;
                          bVar10 = bVar7;
                          while (bVar10 != *(byte *)(puVar32 + 3)) {
                            piVar35 = (int *)*piVar34;
                            piVar34 = (int *)piVar34[1];
                            if (*(byte *)(puVar32 + 3) < bVar10) {
                              piVar34 = piVar35;
                            }
                            if (piVar34 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            bVar10 = *(byte *)(piVar34 + 3);
                          }
                          piVar34 = (int *)puVar28[1];
                          if (piVar34 != (int *)0x0) goto LAB_0001f0e8;
                          bVar10 = *(byte *)(puVar28 + 3);
                          piVar34 = piVar33;
                          bVar11 = bVar7;
                          goto joined_r0x0001fc8c;
                        }
                      }
                    }
                    goto LAB_0001e864;
                  }
                  piVar34 = (int *)puVar28[1];
                  if (piVar34 == (int *)0x0) {
                    if (piVar33 == (int *)0x0) goto LAB_0001e864;
                    bVar7 = *(byte *)(piVar33 + 3);
LAB_0001fc88:
                    bVar10 = *(byte *)(puVar28 + 3);
                    piVar34 = piVar33;
                    bVar11 = bVar7;
joined_r0x0001fc8c:
                    while (bVar10 != bVar7) {
                      piVar35 = (int *)piVar34[1];
                      if (bVar10 < bVar7) {
                        piVar35 = (int *)*piVar34;
                      }
                      if (piVar35 == (int *)0x0) {
                        iVar9 = piVar23[5];
                        goto LAB_0001e868;
                      }
                      piVar34 = piVar35;
                      bVar7 = *(byte *)(piVar35 + 3);
                    }
                    goto LAB_0001f328;
                  }
LAB_0001f0e8:
                  puVar32 = (undefined4 *)*piVar34;
                  if (puVar32 == (undefined4 *)0x0) {
                    local_534 = (undefined4 *)piVar34[1];
                    if (local_534 == (undefined4 *)0x0) {
                      if (piVar33 != (int *)0x0) {
                        bVar7 = *(byte *)(piVar33 + 3);
LAB_0001f964:
                        piVar35 = piVar33;
                        bVar10 = bVar7;
                        while (*(byte *)(piVar34 + 3) != bVar10) {
                          piVar36 = (int *)*piVar35;
                          piVar35 = (int *)piVar35[1];
                          if (*(byte *)(piVar34 + 3) < bVar10) {
                            piVar35 = piVar36;
                          }
                          if (piVar35 == (int *)0x0) {
                            iVar9 = piVar23[5];
                            goto LAB_0001e868;
                          }
                          bVar10 = *(byte *)(piVar35 + 3);
                        }
                        goto LAB_0001fc88;
                      }
                    }
                    else {
                      iVar9 = FUN_0001ae90(piVar33,*local_534);
                      if (iVar9 != 0) {
LAB_0001f5cc:
                        iVar9 = FUN_0001ae90(piVar33,local_534[1]);
                        if ((iVar9 != 0) && (piVar33 != (int *)0x0)) {
                          bVar7 = *(byte *)(piVar33 + 3);
                          bVar10 = bVar7;
                          piVar35 = piVar33;
                          while (*(byte *)(local_534 + 3) != bVar10) {
                            piVar36 = (int *)*piVar35;
                            piVar35 = (int *)piVar35[1];
                            if (*(byte *)(local_534 + 3) < bVar10) {
                              piVar35 = piVar36;
                            }
                            if (piVar35 == (int *)0x0) {
                              iVar9 = piVar23[5];
                              goto LAB_0001e868;
                            }
                            bVar10 = *(byte *)(piVar35 + 3);
                          }
                          goto LAB_0001f964;
                        }
                      }
                    }
                    goto LAB_0001e864;
                  }
                  iVar9 = FUN_0001ae90(piVar33,*puVar32);
                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||
                     (piVar33 == (int *)0x0)) goto LAB_0001e864;
                  bVar7 = *(byte *)(piVar33 + 3);
                  bVar10 = bVar7;
                  piVar35 = piVar33;
                  while (bVar10 != *(byte *)(puVar32 + 3)) {
                    piVar36 = (int *)*piVar35;
                    piVar35 = (int *)piVar35[1];
                    if (*(byte *)(puVar32 + 3) < bVar10) {
                      piVar35 = piVar36;
                    }
                    if (piVar35 == (int *)0x0) {
                      iVar9 = piVar23[5];
                      goto LAB_0001e868;
                    }
                    bVar10 = *(byte *)(piVar35 + 3);
                  }
                  local_534 = (undefined4 *)piVar34[1];
                  if (local_534 == (undefined4 *)0x0) goto LAB_0001f964;
                  iVar9 = FUN_0001ae90(piVar33,*local_534);
                  if (iVar9 != 0) goto LAB_0001f5cc;
                  iVar9 = piVar23[5];
LAB_0001e868:
                  iVar9 = iVar9 - *(int *)(iVar4 + 0x14);
                  if (iVar9 < *(int *)(iVar4 + 0x18)) {
                    *(int *)(iVar4 + 0x18) = iVar9;
                  }
                  goto LAB_0001e884;
                }
                puVar28 = (undefined4 *)*puVar20;
                if (puVar28 != (undefined4 *)0x0) {
                  iVar9 = FUN_0001ae90(piVar33,*puVar28);
                  if (iVar9 != 0) {
                    puVar32 = (undefined4 *)puVar28[1];
                    if (puVar32 == (undefined4 *)0x0) {
                      if (piVar33 != (int *)0x0) {
                        bVar7 = *(byte *)(piVar33 + 3);
                        goto LAB_0001ed20;
                      }
                    }
                    else {
                      iVar9 = FUN_0001ae90(piVar33,*puVar32);
                      if (((iVar9 != 0) && (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 != 0))
                         && (piVar33 != (int *)0x0)) {
                        bVar7 = *(byte *)(piVar33 + 3);
                        bVar10 = bVar7;
                        piVar34 = piVar33;
                        while (bVar10 != *(byte *)(puVar32 + 3)) {
                          iVar9 = *piVar34;
                          piVar34 = (int *)piVar34[1];
                          if (*(byte *)(puVar32 + 3) < bVar10) {
                            piVar34 = (int *)iVar9;
                          }
                          if (piVar34 == (int *)0x0) goto LAB_0001e864;
                          bVar10 = *(byte *)(piVar34 + 3);
                        }
LAB_0001ed20:
                        piVar34 = piVar33;
                        bVar10 = bVar7;
                        while (*(byte *)(puVar28 + 3) != bVar10) {
                          piVar35 = (int *)*piVar34;
                          piVar34 = (int *)piVar34[1];
                          if (*(byte *)(puVar28 + 3) < bVar10) {
                            piVar34 = piVar35;
                          }
                          if (piVar34 == (int *)0x0) {
                            iVar9 = piVar23[5];
                            goto LAB_0001e868;
                          }
                          bVar10 = *(byte *)(piVar34 + 3);
                        }
                        puVar28 = (undefined4 *)puVar20[1];
                        if (puVar28 != (undefined4 *)0x0) goto LAB_0001ea10;
                        bVar11 = *(byte *)(puVar20 + 3);
                        piVar34 = piVar33;
                        bVar10 = bVar7;
                        goto joined_r0x0001f08c;
                      }
                    }
                  }
                  goto LAB_0001e864;
                }
                puVar28 = (undefined4 *)puVar20[1];
                if (puVar28 == (undefined4 *)0x0) {
                  if (piVar33 == (int *)0x0) goto LAB_0001e864;
                  bVar7 = *(byte *)(piVar33 + 3);
                }
                else {
LAB_0001ea10:
                  puVar32 = (undefined4 *)*puVar28;
                  if (puVar32 == (undefined4 *)0x0) {
                    puVar32 = (undefined4 *)puVar28[1];
                    if (puVar32 == (undefined4 *)0x0) {
                      if (piVar33 != (int *)0x0) {
                        bVar10 = *(byte *)(piVar33 + 3);
LAB_0001f52c:
                        bVar11 = *(byte *)(puVar28 + 3);
                        piVar34 = piVar33;
                        bVar7 = bVar10;
                        goto joined_r0x0001f530;
                      }
                    }
                    else {
LAB_0001eecc:
                      iVar9 = FUN_0001ae90(piVar33,*puVar32);
                      if (iVar9 != 0) {
                        puVar26 = (undefined4 *)puVar32[1];
                        if (puVar26 == (undefined4 *)0x0) {
                          if (piVar33 != (int *)0x0) {
                            bVar10 = *(byte *)(piVar33 + 3);
                            goto LAB_0001fa60;
                          }
                        }
                        else {
                          iVar9 = FUN_0001ae90(piVar33,*puVar26);
                          if (((iVar9 != 0) &&
                              (iVar9 = FUN_0001ae90(piVar33,puVar26[1]), iVar9 != 0)) &&
                             (piVar33 != (int *)0x0)) {
                            bVar10 = *(byte *)(piVar33 + 3);
                            bVar7 = bVar10;
                            piVar34 = piVar33;
                            while (*(byte *)(puVar26 + 3) != bVar7) {
                              piVar35 = (int *)*piVar34;
                              piVar34 = (int *)piVar34[1];
                              if (*(byte *)(puVar26 + 3) < bVar7) {
                                piVar34 = piVar35;
                              }
                              if (piVar34 == (int *)0x0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
                              bVar7 = *(byte *)(piVar34 + 3);
                            }
LAB_0001fa60:
                            piVar34 = piVar33;
                            bVar7 = bVar10;
                            while (*(byte *)(puVar32 + 3) != bVar7) {
                              piVar35 = (int *)*piVar34;
                              piVar34 = (int *)piVar34[1];
                              if (*(byte *)(puVar32 + 3) < bVar7) {
                                piVar34 = piVar35;
                              }
                              if (piVar34 == (int *)0x0) {
                                iVar9 = piVar23[5];
                                goto LAB_0001e868;
                              }
                              bVar7 = *(byte *)(piVar34 + 3);
                            }
                            goto LAB_0001f52c;
                          }
                        }
                      }
                    }
                    goto LAB_0001e864;
                  }
                  iVar9 = FUN_0001ae90(piVar33,*puVar32);
                  if (((iVar9 == 0) || (iVar9 = FUN_0001ae90(piVar33,puVar32[1]), iVar9 == 0)) ||
                     (piVar33 == (int *)0x0)) goto LAB_0001e864;
                  bVar10 = *(byte *)(piVar33 + 3);
                  bVar7 = bVar10;
                  piVar34 = piVar33;
                  while (*(byte *)(puVar32 + 3) != bVar7) {
                    piVar35 = (int *)*piVar34;
                    piVar34 = (int *)piVar34[1];
                    if (*(byte *)(puVar32 + 3) < bVar7) {
                      piVar34 = piVar35;
                    }
                    if (piVar34 == (int *)0x0) {
                      iVar9 = piVar23[5];
                      goto LAB_0001e868;
                    }
                    bVar7 = *(byte *)(piVar34 + 3);
                  }
                  puVar32 = (undefined4 *)puVar28[1];
                  if (puVar32 != (undefined4 *)0x0) goto LAB_0001eecc;
                  bVar11 = *(byte *)(puVar28 + 3);
                  piVar34 = piVar33;
                  bVar7 = bVar10;
joined_r0x0001f530:
                  while (bVar10 != bVar11) {
                    piVar35 = (int *)piVar34[1];
                    if (bVar11 < bVar10) {
                      piVar35 = (int *)*piVar34;
                    }
                    if (piVar35 == (int *)0x0) {
                      iVar9 = piVar23[5];
                      goto LAB_0001e868;
                    }
                    piVar34 = piVar35;
                    bVar10 = *(byte *)(piVar35 + 3);
                  }
                }
                bVar11 = *(byte *)(puVar20 + 3);
                piVar34 = piVar33;
                bVar10 = bVar7;
joined_r0x0001f08c:
                while (bVar7 != bVar11) {
                  piVar35 = (int *)piVar34[1];
                  if (bVar11 < bVar7) {
                    piVar35 = (int *)*piVar34;
                  }
                  if (piVar35 == (int *)0x0) {
                    iVar9 = piVar23[5];
                    goto LAB_0001e868;
                  }
                  piVar34 = piVar35;
                  bVar7 = *(byte *)(piVar35 + 3);
                }
                puVar20 = (undefined4 *)puVar16[1];
                if (puVar20 != (undefined4 *)0x0) goto LAB_0001e974;
                bVar11 = *(byte *)(puVar16 + 3);
                piVar34 = piVar33;
                bVar7 = bVar10;
joined_r0x0001ef80:
                while (bVar10 != bVar11) {
                  piVar35 = (int *)piVar34[1];
                  if (bVar11 < bVar10) {
                    piVar35 = (int *)*piVar34;
                  }
                  if (piVar35 == (int *)0x0) {
                    iVar9 = piVar23[5];
                    goto LAB_0001e868;
                  }
                  piVar34 = piVar35;
                  bVar10 = *(byte *)(piVar35 + 3);
                }
                puVar16 = (undefined4 *)puVar27[1];
                if (puVar16 != (undefined4 *)0x0) goto LAB_0001e8cc;
                bVar10 = *(byte *)(puVar27 + 3);
              }
              while (bVar10 != bVar7) {
                piVar34 = (int *)*piVar33;
                piVar33 = (int *)piVar33[1];
                if (bVar10 < bVar7) {
                  piVar33 = piVar34;
                }
                if (piVar33 == (int *)0x0) {
                  iVar9 = piVar23[5];
                  goto LAB_0001e868;
                }
                bVar7 = *(byte *)(piVar33 + 3);
              }
            }
LAB_0001e884:
            if ((iVar8 != 0) &&
               (iVar9 = piVar23[5] - *(int *)(iVar4 + 0x14), iVar9 < *(int *)(iVar4 + 0x1c))) {
              *(int *)(iVar4 + 0x1c) = iVar9;
            }
            iVar4 = *(int *)(iVar4 + 0x10);
          } while (iVar4 != 0);
          piVar23 = (int *)piVar23[3];
        }
        else {
LAB_0001dfb4:
          piVar23 = (int *)piVar23[3];
        }
      } while (piVar23 != (int *)0x0);
      if (iVar31 == 1) {
        piVar23 = (int *)param_1[0xc];
        goto LAB_000206c8;
      }
    }
  }
LAB_0001dfc8:
  if (pbVar29 == (byte *)0x0) {
    puVar16 = param_1 + 0x4f;
    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);
    puVar27 = *(undefined4 **)(param_1[0xc] + 4);
    if (puVar27 != (undefined4 *)0x0) goto LAB_0001dff8;
LAB_0001f81c:
    piVar23 = param_1 + 0x4f;
    uVar5 = 0;
    uVar14 = 0xfffffffe;
    uVar21 = 0xffffffff;
    do {
      uVar17 = uVar14;
      uVar24 = uVar21;
      if ((*piVar23 != 0) && (uVar17 = uVar5, uVar24 = uVar5, -2 < (int)uVar14)) {
        if (uVar14 == uVar5) {
          uVar17 = uVar14;
          uVar24 = uVar21;
          if (uVar14 != uVar21) {
            uVar24 = 0xffffffff;
          }
        }
        else {
          uVar17 = uVar14;
          if (uVar14 != uVar21) {
            uVar17 = 0xffffffff;
            uVar24 = uVar21;
          }
        }
      }
      uVar5 = uVar5 + 1;
      piVar23 = piVar23 + 1;
      uVar14 = uVar17;
      uVar21 = uVar24;
    } while (uVar5 != 0x100);
  }
  else {
    puVar16 = auStack_52c;
    (*(code *)PTR_memset_000563f4)(puVar16,0,0x400);
    puVar27 = *(undefined4 **)(param_1[0xc] + 4);
    if (puVar27 != (undefined4 *)0x0) {
LAB_0001dff8:
      puVar20 = (undefined4 *)*puVar27;
      if (puVar20 != (undefined4 *)0x0) {
        puVar28 = (undefined4 *)*puVar20;
        if (puVar28 != (undefined4 *)0x0) {
          puVar32 = (undefined4 *)*puVar28;
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar32 = (undefined4 *)puVar28[1];
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];
        }
        puVar28 = (undefined4 *)puVar20[1];
        if (puVar28 != (undefined4 *)0x0) {
          puVar32 = (undefined4 *)*puVar28;
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar32 = (undefined4 *)puVar28[1];
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];
        }
        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];
      }
      puVar20 = (undefined4 *)puVar27[1];
      if (puVar20 != (undefined4 *)0x0) {
        puVar28 = (undefined4 *)*puVar20;
        if (puVar28 != (undefined4 *)0x0) {
          puVar32 = (undefined4 *)*puVar28;
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar32 = (undefined4 *)puVar28[1];
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];
        }
        puVar28 = (undefined4 *)puVar20[1];
        if (puVar28 != (undefined4 *)0x0) {
          puVar32 = (undefined4 *)*puVar28;
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar32 = (undefined4 *)puVar28[1];
          if (puVar32 != (undefined4 *)0x0) {
            puVar26 = (undefined4 *)*puVar32;
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar26 = (undefined4 *)puVar32[1];
            if (puVar26 != (undefined4 *)0x0) {
              FUN_0001af60(*puVar26,puVar16);
              FUN_0001af60(puVar26[1],puVar16);
              puVar16[*(byte *)(puVar26 + 3)] = puVar26[2];
            }
            puVar16[*(byte *)(puVar32 + 3)] = puVar32[2];
          }
          puVar16[*(byte *)(puVar28 + 3)] = puVar28[2];
        }
        puVar16[*(byte *)(puVar20 + 3)] = puVar20[2];
      }
      puVar16[*(byte *)(puVar27 + 3)] = puVar27[2];
      if (pbVar29 == (byte *)0x0) goto LAB_0001f81c;
    }
    piVar23 = param_1 + 0x4f;
    uVar5 = 0;
    uVar14 = 0xfffffffe;
    uVar21 = 0xffffffff;
    do {
      uVar12 = (uint)pbVar29[uVar5];
      iVar8 = puVar16[uVar12];
      *piVar23 = iVar8;
      uVar17 = uVar14;
      uVar24 = uVar21;
      if ((iVar8 != 0) && (uVar17 = uVar12, uVar24 = uVar5, -2 < (int)uVar14)) {
        if (uVar12 == uVar14) {
          uVar17 = uVar14;
          if (uVar14 != uVar21) {
            uVar24 = 0xffffffff;
          }
        }
        else if ((uVar12 != uVar5) || (uVar17 = uVar14, uVar14 != uVar21)) {
          uVar17 = 0xffffffff;
          uVar24 = uVar21;
        }
      }
      uVar5 = uVar5 + 1;
      piVar23 = piVar23 + 1;
      uVar14 = uVar17;
      uVar21 = uVar24;
    } while (uVar5 != 0x100);
  }
  param_1[0x152] = uVar17;
  param_1[0x153] = uVar24;
  if (iVar31 != 1) goto LAB_0001e6f8;
  uVar21 = param_1[4];
  uVar14 = param_1[0xd];
  if (uVar21 - param_1[3] < uVar14) {
    _obstack_newchunk(param_1);
    iVar8 = param_1[2];
    iVar31 = param_1[3] + uVar14;
    uVar21 = param_1[4];
    uVar14 = param_1[0xd];
    param_1[3] = iVar31;
    if (iVar31 == iVar8) goto LAB_000209a8;
  }
  else {
    iVar8 = param_1[2];
    iVar31 = param_1[3] + uVar14;
    param_1[3] = iVar31;
    if (iVar31 == iVar8) {
LAB_000209a8:
      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;
    }
  }
  uVar5 = iVar31 + param_1[6] & ~param_1[6];
  param_1[3] = uVar5;
  if (uVar21 - param_1[1] < uVar5 - param_1[1]) {
    param_1[3] = uVar21;
    uVar5 = uVar21;
  }
  piVar23 = (int *)param_1[0xc];
  param_1[2] = uVar5;
  param_1[0x14f] = iVar8;
  if (-1 < (int)(uVar14 - 1)) {
    *(undefined1 *)(iVar8 + (uVar14 - 1)) = *(undefined1 *)(piVar23[1] + 0xc);
    piVar23 = (int *)piVar23[3];
    for (iVar31 = uVar14 - 2; iVar31 != -1; iVar31 = iVar31 + -1) {
      *(undefined1 *)(param_1[0x14f] + iVar31) = *(undefined1 *)(piVar23[1] + 0xc);
      piVar23 = (int *)piVar23[3];
    }
    uVar14 = param_1[0xd];
  }
  bVar1 = (int)uVar14 < 2;
  if (!bVar1) {
    uVar21 = param_1[4];
    iVar31 = param_1[3];
    uVar5 = (uVar14 - 1) * 4;
    if (uVar21 - iVar31 < uVar5) {
      _obstack_newchunk(param_1,uVar5);
      uVar14 = param_1[0xd];
      iVar31 = param_1[3];
      uVar21 = param_1[4];
      bVar1 = (int)uVar14 < 2;
    }
    piVar33 = (int *)param_1[2];
    piVar23 = (int *)(iVar31 + uVar5);
    param_1[3] = piVar23;
    if (piVar23 == piVar33) {
      *(byte *)(param_1 + 10) = *(byte *)(param_1 + 10) & 0xbf | 0x40;
    }
    uVar5 = (int)piVar23 + param_1[6] & ~param_1[6];
    param_1[3] = uVar5;
    if (uVar21 - param_1[1] < uVar5 - param_1[1]) {
      param_1[3] = uVar21;
      uVar5 = uVar21;
    }
    param_1[2] = uVar5;
    param_1[0x150] = piVar33;
    piVar23 = *(int **)(param_1[0xc] + 0xc);
    if (!bVar1) {
      iVar31 = 0;
      do {
        piVar34 = piVar23 + 6;
        piVar23 = (int *)piVar23[3];
        iVar31 = iVar31 + 1;
        *piVar33 = *piVar34;
        uVar14 = param_1[0xd];
        piVar33 = piVar33 + 1;
      } while (iVar31 < (int)(uVar14 - 1));
    }
    bVar7 = *(byte *)(param_1[0x14f] + uVar14 + -2);
    if (pbVar29 != (byte *)0x0) {
      bVar7 = pbVar29[bVar7];
    }
    *(byte *)(param_1 + 0x154) = bVar7;
  }
LAB_0001e6f8:
  if (pbVar29 != (byte *)0x0) {
    pbVar13 = pbVar29 + 0x100;
    piVar33 = param_1 + 0xf;
    do {
      bVar7 = *pbVar29;
      piVar23 = (int *)((int)piVar33 + 1);
      pbVar29 = pbVar29 + 1;
      *(undefined1 *)piVar33 = *(undefined1 *)((int)puVar30 + (uint)bVar7);
      piVar33 = piVar23;
    } while (pbVar13 != pbVar29);
  }
  if (local_2c == *(int *)puVar2) {
    return;
  }
  (*(code *)PTR___stack_chk_fail_00056494)();
                    /* WARNING: Could not recover jumptable at 0x000209d4. Too many branches */
                    /* WARNING: Treating indirect jump as call */
  (*(code *)piVar23[0x155])();
  return;
}

